Kon*_*nel 5 javascript performance setinterval history.js html5-history
据我所知,History.js是HTML5历史/状态API的填充.因此,在现代浏览器中,它应该只使用popstate来监听URL更改.那么,为什么在最新的Chrome上我可以看到定时器每250ms发射一次?它看起来很浪费,并且每隔几秒触发一次垃圾收集器.
看看这个官方的History.js演示.

小智 0
我不知道 History.js 代码,但通读它,我相信@apsillers 是正确的。
队列项目之间的间隔配置为 250 毫秒。该队列中的一些排队函数需要获取历史状态。这些项目通过调用其忙碌来强制刷新暂停。
至于为什么在 HTML5 浏览器中发生这种情况,对我来说,似乎是 History.JS 不只是切换一个开关,如果它是 HTML5,然后什么都不做。在他们的github上,他们的目标之一是:
为所有 HTML5 浏览器提供交叉兼容的体验(它们实现 HTML5 History API 的方式略有不同,导致不同的行为,有时还会出现错误 - History.js 修复了这个问题,确保整个 HTML5 浏览器的体验符合预期/相同/出色)
如果 History.js 仍在做一些涉及排队的工作,我猜他们会使用繁忙超时。
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |