【问题标题】:Why does the browser wait to end loading the page?为什么浏览器等待结束加载页面?
【发布时间】:2011-10-13 15:11:51
【问题描述】:

谁能解释一下为什么有那些空格(标有?)?他们正在延迟页面加载。我认为这可能是页面/脚本解析时间,但是对于一个简单的页面来说,~350ms 看起来太多了;好的,有很多脚本,但看起来还是很多。

会是什么?

【问题讨论】:

  • 使用时间轴视图查看正在发生的其他事情。
  • 如果去掉脚本,这个效果还保留吗?
  • 您可以使用其他工具(例如 firebug)来验证这一点吗?
  • 我不认为这些差距会延迟页面,而是文档等待和接收时间。如果您查看萤火虫,您将看不到这些差距。
  • 萤火虫中也显示了间隙。问题是最后有一个重要的 ajax 请求(用黄色标记的那个),它被延迟了。我猜它与脚本解析有关,但还不知道如何优化它。

标签: asp.net performance html-rendering webpage-rendering


【解决方案1】:

我的猜测是这是一个 JavaScript 加载问题。您应该使用 defer 属性来延迟加载 JavaScript。这将允许页面在执行 JavaScript 代码之前加载。

这是因为浏览器是单线程的,当它们遇到脚本标签时,它们会暂停任何其他进程,直到它们下载并解析脚本。通过在末尾包含脚本,您允许浏览器下载和呈现所有页面元素、样式表和图像,而不会产生任何不必要的延迟。此外,如果浏览器在执行任何脚本之前呈现页面,您就知道所有页面元素都已可供检索。

见http://www.hunlock.com/blogs/Deferred_Javascript和http://blog.fedecarg.com/2011/07/12/javascript-asynchronous-script-loading-and-lazy-loading/

【讨论】:

    【解决方案2】:

    你的 CSS 在标题部分吗?

    否则您的浏览器可能会等待很长时间才能尝试加载资源。

    第二个猜测是您的 JavaScript 出于某种原因阻止了页面加载。加载后是否有任何 DOM 操作?此外,您的 JavaScript 是否位于页面底部,最后加载?否则这可能会阻止加载。

    【讨论】:

      猜你喜欢
      • 2017-04-17
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2020-10-19
      • 2012-04-27
      相关资源
      最近更新 更多