使用timeOut
或类似技术调查病情有点“违背我的宗教信仰”。我宁愿处理一个事件而不是不断搜索事件发生的证据。
但是,由于对onHashChange
事件的支持不足,建议我使用一个插件每隔50ms轮询一次window.location
属性。
这样做是否存在真正的风险(例如处理费用)?或者我只是迷信?
答案 0 :(得分:1)
当我最近问过类似的问题时,人们建议每秒调查一次:What is a good setTimeout interval for polling in a IE?
答案 1 :(得分:1)
我们使用setInterval
120ms
来检查哈希键
虽然它是一个单页网页应用程序,严重依赖于javascript,但轮询并没有达到性能。
我没有尝试IE6和IE7,但IE8和其他当今常见浏览器的一切都很好。
120ms的价值是通过一些定性测试得出的。
我使用后退/前进按钮时按20步播放。
我感觉不到低于120的值的差异。虽然我可以感觉到超过120的值的增长滞后。
但这可能取决于您的应用,轮询时间应该具有相对于应用整体响应时间的值。
答案 2 :(得分:0)
由于轮询window.location
财产是一种常见做法,因此我认为不存在真正的风险。当我需要实现它时,我发现在Google的gmail和“翻译”中使用了这样的轮询。
答案 3 :(得分:0)
这里最大的问题是你的window.location
检查代码每秒会执行20次,这看起来有点矫枉过正。
你可能想在IE上测试它,看看它有什么样的减速,因为IE将成为JS相关的最大问题。