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

本文介绍了一段用于按时间表展示内容的JavaScript代码,并提出了针对其闪烁问题的改进建议。作者希望调整代码使内容仅在设定的时间点更新,避免每秒跳动导致的用户体验不佳。

说明:以下代码是一窜节目预告的js代码,设定在<span id="播放"></span>后可以定时展示出需要展示的内容,但是有一个缺点是,每一秒要跳动一下,让展示的内容感官不是很好。

在此,请求贵站的各位大神,能不帮忙改写一下【将每一秒跳动的频率改为list:{'06.00':'内容一'}设定的时间跳动】,就可以正常展示,不会闪烁。

本人小白,我的描述可能并不专业,请大神们理解万岁,并协助改写一下,谢谢!

var PlayList={
    list:{
	
'06:00':'内容一',
		
'11:00':'内容二',

'19:00':'内容三',
		
'22:00':'内容四',
		
'23:59':'&nbsp; ',
 },
    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
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值