嵌入外部js脚本 - 合理的限制?

时间:2012-07-19 13:06:27

标签: javascript jquery ajax

我们有主要的布局页面,我们有一些外部脚本,在通过ajax加载页面之后加载。其中一些非常慢,因为它们正在打开socket.io连接。这减缓了整个页面的负载。

我有一些问题:

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

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

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

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

  5. 更新:最后我使用HeadJS库。

1 个答案:

答案 0 :(得分:1)

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

    它非常详尽地解释了脚本标记本身的历史和演变,并且有一些最佳实践。