本文实例讲述了JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法。分享给大家供大家参考,具体如下:
setTimeout 用于延时器,只执行一次.
setInterval:用于多次执行.
项目中引用到jquery.timers-1.2.js定时器,并且MSClass做信息定期滚动,每3分钟执行一次,执行三次左右,滚动的次数越来越快,原因在于timers和MSClass都用了setInterval,
都会再次添加一个setInterval,最后导致几个setInterval并发执行了,所以速度很快,需要在调用的时候clearInterval上次的setInterval ,或者引用MSClass作者的原方法。
//定时器先执行 销毁实例var Marquee1 = new Marquee(["div1", "Content"])function Marquee_everyTime() { Marquee1.Destroy(); //销毁实例应用 GetMarqueeInfo(); //然后ajax采集需要的信息数据。}//ajax方法function GetMarqueeInfo() { LG.ajax({ type: 'AjaxOther', method: 'GetMarqueeInfo', success: function (data, tipsContent) { $("#Content").html(""); $("#Content").html(tipsContent); //大容器| 小容器 |滚动的方向 |滚动的速度 | 大容器的宽度 | 大容器的高度 | 滚动休息时间 | 滚动休息时间 | 滚动结束时间 Marquee1.Direction = 2; Marquee1.Step = 0.4; Marquee1.Width = 640; Marquee1.Height = 30; Marquee1.Timer = 20; Marquee1.DelayTime = 4000; Marquee1.WaitTime = 3000; Marquee1.ScrollStep = 320; Marquee1.Start(); }, error: function () { LG.tip('信息加载失败.'); } });}