找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 636|回复: 1

[iptv信源 资源分享或寻求] 再次请教各位大神一个题外js问题

[复制链接]
发表于 2021-10-9 10:46 | 显示全部楼层 |阅读模式
我想设置定时自动更换标题的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>
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2021-10-9 10:47 | 显示全部楼层
  1. <script type="text/javascript">
  2. var PlayList={
  3.      list:{
  4. '00:00':'标题一',
  5. '10:00':'标题二',
  6. '14:00':'标题三,
  7.    },
  8.      live:function (it){//开始计时
  9.         clearInterval(it.timer);//清除上次计时任务
  10.         var date=new Date(this.time).toString();//取得服务器时间字符串
  11.         this.db=[];
  12.          for(var k in this.list){//转换为数组
  13.            this.db.push({
  14.                  time:new Date(date.replace(/\d+:\d+(:\d+)/,k+'$1')),//转换为标准时间
  15.                 title:this.list[k]
  16.             })
  17.          }
  18.          this.db.sort(function (a,b){//排序节目表
  19.            return a.time-b.time
  20.          });
  21.          it.timer=setInterval(function() {//频发计时
  22.             it.time+=1000;
  23.              var cur,next,find;
  24.              for (var i = 0, j = it.db.length; i < j; i++) {//查找当前节目
  25.                 var o=it.db;
  26.                  if (o.time>it.time) {find=true;break}//如果有一个节目时间大于当前时间,即找到下一个节目
  27.             }
  28.              if(!find)i=0;//如果没有节目比现在时间大,意味着在音乐时间
  29.             next=it.db.title;//取得下一个节目标题
  30.             cur=i>0?it.db[i-1].title:'暂无标题显示';//取得当前节目标题
  31.             it.onInterval(new Date(it.time),cur,next)
  32.          },1000);
  33.          setTimeout(function() {
  34.              it.index()
  35.          },1000*60*10);//10分钟后校验服务器时间
  36.     },
  37.      index:function (){//初始化
  38.        this.update(function (time){
  39.             this.time=time;
  40.             this.live(this)
  41.         },this)
  42.      },
  43.      update:function (end,context){//取得服务器时间
  44.         var o = !-[1,] ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest;
  45.          o.open('HEAD', '/', true);
  46.          o.onreadystatechange=function (){
  47.              if (o.readyState==4 && o.status==200)
  48.                  end.call(context,Date.parse(o.getResponseHeader('Date')))
  49.          }
  50.          o.send(null)        
  51.      },
  52.      onInterval:Function()//间隔事件
  53. };
  54. PlayList.index();
  55. PlayList.onInterval=function (now,cur,next){
  56.      document.getElementById('title').innerHTML=cur
  57. };
  58. </script>
  59. <!--html引用-->
  60. <span id="title"></span>
复制代码


我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-26 16:40

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表