GuanlinSir 2022-11-04 20:14 采纳率: 0%
浏览 14

如下js代码,如何定义为定时刷新跳转

说明:以下代码是节目预告的js代码,设定在后可以定时展示出需要展示的内容,但是有一个缺点是,每一秒要跳动一下,让展示的内容感官不是很好。
在此,请求各位朋友,能不帮忙改写一下【将每一秒跳动的频率改为list:{'06.00':'内容一'}设定的时间跳动】,就可以正常展示,不会闪烁。

本人初学者,我的描述可能并不专业,请各位朋友们理解万岁,并协助改写一下,谢谢!

javascript
var PlayList={
    list:{
    
'06:00':'内容一',
        
'11:00':'内容二',
 
'19:00':'内容三',
        
'22:00':'内容四',
        
'23:59':'  ',
 },
    live:function (it){//开始计时
        clearInterval(it.timer);//清除上次计时任务
        var date=new Date(this.time).toString();//取得服务器时间字符串
        this.db=[];
        for(var k in this.list){//转换为数组
           this.db.push({
                time:new Date(date.replace(/\d+:\d+(:\d+)/,k+'$1')),//转换为标准时间
                title:this.list[k]
           })
        }
        this.db.sort(function (a,b){//排序节目表
           return a.time-b.time
        });
        it.timer=setInterval(function() {//频发计时
            it.time+=1000;
            var cur,next,find;
            for (var i = 0, j = it.db.length; i < j; i++) {//查找当前节目
                var o=it.db[i];
                if (o.time>it.time) {find=true;break}//如果有一个节目时间大于当前时间,即找到下一个节目
            }
            if(!find)i=0;//如果没有节目比现在时间大,意味着在音乐时间
            next=it.db[i].title;//取得下一个节目标题
            cur=i>0?it.db[i-1].title:'检修';//取得当前节目标题
            it.onInterval(new Date(it.time),cur,next)
        },1000);
        setTimeout(function() {
            it.index()
        },1000*60*10);//10分钟后校验服务器时间
    },
    index:function (){//初始化
       this.update(function (time){
           this.time=time;
           this.live(this)
       },this) 
    },
    update:function (end,context){//取得服务器时间
        var o = !-[1,] ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest;
        o.open('HEAD', '/', true);
        o.onreadystatechange=function (){
            if (o.readyState==4 && o.status==200)
                end.call(context,Date.parse(o.getResponseHeader('Date')))
        }
        o.send(null)        
    },
    onInterval:Function()//间隔事件
};
PlayList.index();
PlayList.onInterval=function (now,cur,next){
    document.getElementById('播放').innerHTML=cur
};

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-11-05 17:24
    关注

    题主什么浏览器?chrome,Firefox测试了下,同一个时间段内内容都是一样更新不会闪动。不过onInterval可以判断下内容变了在更新

        PlayList.index();
        PlayList.onInterval = function (now, cur, next) {
            if (document.getElementById('播放').innerHTML != cur) document.getElementById('播放').innerHTML = cur;
        };
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月4日

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路