【问题标题】:Where do I put the jQuery script tag? [duplicate]我在哪里放置 jQuery 脚本标签? [复制]
【发布时间】:2011-06-30 02:27:24
【问题描述】:

在所有文档中,我在头部看到 <title> 下方的 jQuery 脚本标签,但是当我进入其他一些站点时(initializr 模板是我脑海中的第一个模板),他们放弃了它进入身体底部(你知道,就在</body>之前)。

这两个哪个是对的?

【问题讨论】:

  • @Jonathan 我问的是 jQuery,特别是因为它是一个库,而且似乎所有其他 javascript 都依赖它。
  • 当然,但另一个问题也提到了 jQuery。
  • 不管是在顶部还是底部。我在这里发布了一个类似问题的答案:stackoverflow.com/a/21482906/680936
  • 这个问题最相关的答案不是链接的(几乎)重复,而是stackoverflow.com/a/2105394/521662

标签: javascript jquery


【解决方案1】:

引用 YDN Best Practices for Speeding Up Your Web Site:

将脚本放在底部

脚本导致的问题是它们会阻止并行下载。 HTTP/1.1 规范建议浏览器每个主机名并行下载不超过两个组件。如果您从多个主机名提供图像,则可以同时进行两次以上的下载。但是,在下载脚本时,浏览器不会启动任何其他下载,即使在不同的主机名上也是如此。

在某些情况下,将脚本移至底部并不容易。例如,如果脚本使用 document.write 插入部分页面内容,则不能将其移至页面下方。也可能存在范围问题。在许多情况下,有一些方法可以解决这些情况。

另一个经常出现的替代建议是使用延迟脚本。 DEFER 属性表示脚本不包含 document.write,并且是浏览器可以继续呈现的线索。不幸的是,Firefox 不支持 DEFER 属性。在 Internet Explorer 中,脚本可能会被延迟,但不会像期望的那样延迟。如果可以推迟脚本,也可以将其移至页面底部。这将使您的网页加载速度更快。

有趣的是,人们过去常说I should be slapped upside the head for doing thatI said that in 2009 现在突然成为最佳实践……取得了一些进展。

【讨论】:

    【解决方案2】:

    将脚本放在底部有性能优势:

    Where should I put <script> tags in HTML markup?

    【讨论】:

      【解决方案3】:

      Steve Souders 的书High Performance Web Sites 建议将脚本放在底部,&lt;/body&gt; 标记之前。您还可以在 developer.yahoo.com 网站 here 找到此文档。 (这是列表中的第四条建议。)

      我通常将脚本放在底部,在我的 '' 标记之前,并且对此几乎没有问题。我注意到这对 IE7 等旧浏览器的性能的帮助远大于 FF3.6、Chrome 和 IE9 等新浏览器的性能。较旧的浏览器仅支持 2 个并行下载,而较新的浏览器支持 6 个连接。因此,阻塞并不那么明显。

      希望这会有所帮助!

      【讨论】:

        【解决方案4】:

        好吧,我认为您需要将其放在$(document).ready(function() { 中,以便在您调用 jQuery 之前文档实际上已准备好。我个人也把&lt;/body&gt;放在前面。现在鉴于两者都有效,是否有“正确”的方式,或者这只是个人喜好的问题?

        不过,我很想听听专家的意见。

        【讨论】:

        猜你喜欢
        • 2013-11-27
        • 1970-01-01
        • 2015-06-29
        • 2011-04-08
        • 1970-01-01
        • 2011-03-16
        • 1970-01-01
        • 2017-11-17
        • 2017-12-20
        相关资源
        最近更新 更多