最近遇到一个在做列表的时候需要把每个列表后面加上倒计时,时间结束执行其他功能。
由于列表渲染的时候是通过socket 直接返回列表数据,没有进行页面的整体刷新。进而每次socket 数据过来的时候使定时器再次生成,造成定时器发生错乱问题。后来想了想是因为var timer=setInterval("clock()",50) , 定时器生成随机数是全局变量,页面不刷新不会被清除,而是继续生成追加,网页中有多个定时器,定时器发生错乱问题。
后来的处理办法:将每次生成 的定时器变量存放到一个Arr数组里面,每次socket 数据重新过来的时候,将 Arr数组里面的定时器清空,这样重新生成的定时器是最新的不会和先前没有结束的定时器有影响。