【发布时间】:2013-07-15 20:07:48
【问题描述】:
据我了解,History.js 是 HTML5 History/State APIs 的 polyfill。因此,在现代浏览器上,它应该简单地使用popstate 来监听 URL 变化。那么,为什么在最新的 Chrome 上我可以看到计时器每 250 毫秒触发一次?这似乎很浪费,每隔几秒就会触发一次垃圾收集器。
看看这个官方History.js demo。
【问题讨论】:
-
为什么不用原生JS?
-
@RomanGorbatko 我们需要支持IE9 and older android browsers。因此,需要使用 polyfill(不是吗?)。
-
我在 chrome 最新版本中没有收到任何 Timer Fired Records
-
@NavaRajan 我已经在 OSX 和 Windows 上的 Canary 和 Stable 上对其进行了测试。请确保您已单击时间线选项卡上的“记录”。
-
据我所知,这与负责刷新任务队列的
History.busy有关。我从未使用或处理过history.js,所以我不确定为什么这是必要的(或者如果有必要不断地运行)。您可以将History.options.busyDelay更改为更高的毫秒值以减慢间隔,但您应该进行广泛的跨浏览器测试以查看是否有任何问题。
标签: javascript performance setinterval history.js html5-history