0

我们有主布局页面,我们有一些外部脚本,在通过 ajax 加载页面后加载。其中一些真的很慢,因为他们正在打开 socket.io 连接。这会减慢整个页面的加载速度。

我有一些疑问:

  1. 如果外部小部件在正文中包含超过 5 个脚本,可以吗?我们应该对每个服务的脚本数量有什么合理的限制?

  2. <script src="/path/to.js"></script>嵌入在 ajax 加载的 html 中 - 将对服务器进行同步或异步查询?

  3. 在外部脚本加载期间如何避免浏览器阻塞?

  4. 当我们有很多外部脚本时,如何提高加载速度?

更新:最后我使用HeadJS库。

4

1 回答 1

1
  1. 虽然可以加载许多不同的脚本,但建议减少不同的 HTTP 调用,因为大多数浏览器允许每个域最多 2 个并发连接,这意味着您的代码将 2 x 2 加载它们,并且不会继续运行直到它们被加载。最佳实践是缩小所有脚本并将其连接到更少的文件中。
  2. 据我所知,常规脚本标签通常会同步加载,甚至会减慢 ajax 加载的 html。
  3. 有一些很好的建议可以避免浏览器阻塞。要么在你的 body 标签底部加载你的脚本,以确保在处理繁重的脚本之前解析所有内容。您还可以使用 defer 和 async 标记(后者是 HTML5),或者在文档发送“就绪”事件后尝试加载脚本。
  4. 减少 HTTP 调用,将一些 JS 的解析推迟到需要的时候,并延迟+异步加载您的 javascript 外部以防止冻结浏览器。

一个很好的阅读是:http ://www.sitepoint.com/a-detailed-breakdown-of-the-ltscriptgt-tag/

它非常透彻地解释了脚本标签本身的历史和演变,并提供了一些最佳实践。

于 2012-07-19T13:16:52.823 回答