我的网站正在test1: 72.268ms
test1.1: 61.086ms
test1.2: 66.854ms
test1.3: 63.698ms
test2: 207.912ms
test3: 81.987ms
test4: 59.752ms
test5: 213.136ms
test6: 204.869ms
处理程序中进行大量工作。我正在努力优化它,但我真的不明白它如何影响我的页面性能。它似乎阻止重新加载页面或导航到同一域上的另一个URL,但它似乎不会阻止跨域导航。它似乎也会在Chrome上间歇性地导致性能问题,但在IE上可以更加一致地重现。有人可以解释window.onunload
如何影响网站性能或指向我的规范吗?
答案 0 :(得分:0)
使用windows.onload与其他方法在不同浏览器中查看速度测试非常有意义。也许我明天会测试一下然后再回复你。
在此之前,这里有一个你可能会觉得有用的链接
stackoverflow.com/questions/20180251/when-to-use-window-onload/...
答案 1 :(得分:0)
unload
处理程序的主要问题是分析跟踪器,该跟踪器执行同步 XHR以发送跟踪数据的最后一部分。同步XHR阻止导航到下一页,直到完成为止,因此这是一个庞大的反模式。
相反,应使用navigator.sendBeacon
(https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon)。创建该API的目的就是为了解决该问题,但是由于它是新的,因此并未得到普遍支持(最值得注意的是IE11缺乏支持)。
(在本用例中,Sync XHR已经使用了很长时间,以保证HTTP调用的执行;卸载处理程序中的异步代码将不会执行,并且在导航之前可能会取消导航之前发出的异步XHR 。)