引言
最近在看小说,起点的限免频道,发现了一个js
的小毛病
起点前端的页面有个“限免剩余时间”的定时器,我打开之后去别的网页浏览一段时间回来之后,发现定时器走的时间跟我离开的时长不符,然后就在研究这个发生的原因。
原因
发现是这个标签页面,在我离开这个页面(切换到别的标签的时候),定时器休眠了,页面js
部分应该都停止运行了。
然后再回来的时候,并不会从服务器校正时间,而是直接继续倒计时。
所以造成了这个bug
解决
翻了一下文档,发现js
有个visibilitychange
事件,可以监听窗口隐藏和显示状态,在这里如果进行一次时间校准(从服务器请求时间戳),那么就可以解决这个bug
了