0

我有一个在处理程序中做大量工作的网站window.onunload。我正在努力优化它,但我并不真正了解它如何影响我的页面性能。似乎它阻止重新加载页面或导航到同一域上的另一个 URL,但它似乎并没有阻止跨域导航。它似乎也会在 Chrome 上间歇性地导致性能问题,但在 IE 上更一致地重现。有人可以解释如何window.onunload影响网站性能或指向我的规范吗?

4

2 回答 2

0

使用 windows.onload 与其他方法在不同浏览器中进行速度测试会非常有趣。也许我明天会测试一下,然后回复你。

在那之前,这里有一个你可能会觉得有用的链接

stackoverflow.com/questions/20180251/when-to-use-window-onload/…</p>

于 2018-06-06T22:28:11.857 回答
0

处理程序的主要问题unload是分析跟踪器执行同步XHR 以发送跟踪数据的最后一部分。同步 XHR 会阻止导航到下一页,直到它完成,因此它是一个巨大的反模式。

相反,navigator.sendBeacon应该使用(https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon)。创建此 API 正是为了解决该问题,但由于它是新的,因此并未得到普遍支持(最值得注意的是,IE11 缺乏支持)。

(Sync XHR 已经在这个用例中使用了很长时间,以保证 HTTP 调用的执行;卸载处理程序中的异步代码将不会被执行,并且在导航之前发出的异步 XHR 可能会在导航时被取消。)

于 2018-10-30T14:36:01.643 回答