|
我想设置定时自动更换标题的js(如下),但是这个js刷新时间是1000(1秒),呈现的标题在每秒闪烁一下,感觉很是不爽,
如果刷新时间改成是10000(10秒),打开速度就延迟10秒了,有影响标题呈现是速度。
请教大神们:能不能将打开设置成1000(1秒),刷新时间设置为标题定时(如:'10:00':'标题二', '14:00':'标题三,)的时间,到设定时间自动刷新到新的标题!
请:@guoma 帮忙看看!
<!--标题定时跳转 js--->
<script type="text/javascript">
var PlayList={
list:{
'00:00':'标题一',
'10:00':'标题二',
'14:00':'标题三,
},
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;
if (o.time>it.time) {find=true;break}//如果有一个节目时间大于当前时间,即找到下一个节目
}
if(!find)i=0;//如果没有节目比现在时间大,意味着在音乐时间
next=it.db.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('title').innerHTML=cur
};
</script>
<!--html引用-->
<span id="title"></span>
|
|