【问题标题】:How does onunload impact page performanceonunload 如何影响页面性能
【发布时间】:2018-11-16 17:28:25
【问题描述】:

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

【问题讨论】:

标签: javascript google-chrome firefox web-performance window.onunload


【解决方案1】:

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

在此之前,这里有一个您可能会发现有用的链接

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

【讨论】:

  • 这更像是一个评论而不是一个解决方案。请保存答案以实际尝试解决方案。虽然非常感谢您的贡献!
  • 要清楚,我关心的是“onunload”而不是“onload”
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多