我不应该在不使用它的页面上包含jquery吗?

时间:2009-07-29 06:33:58

标签: jquery

据我所知,浏览器加载jquery后,通常会将其添加到浏览器缓存中。

我的网站有数百个页面,我有一个包含在这些页面上的头文件,只有部分页面使用jquery代码,所以我想知道如果我做的话页面加载速度更快或者对最终用户有更好的性能不在不使用它的页面上包含jquery,或者因为它被缓存,它是否会影响性能?

6 个答案:

答案 0 :(得分:4)

如果您的jQuery文件被正确缓存,那么如果您不使用它们,则基本无关紧要。无论如何都没有任何重要的程度。

通过“正确缓存”,我的意思是使用远期期货Expires标题版本。

请参阅Supercharging Javascript in PHP

基本上如果不包含它们是有意义的,那么(显然)不要。但如果它变得棘手,困难或容易出错,那就不要打扰了。您不希望发现自己处于在尝试使用不存在的jQuery时无效的页面上获取错误报告的位置,因为您认为该页面不需要它。

答案 1 :(得分:2)

如果有登陆页面(用户最初访问您的网站时的页面,如主页),不需要jQuery,请不要在那里包含jQuery。

用户体验会更好;他会认为你的网站更快。一旦jQuery被加载一次(当用户浏览你的网站时),在删除他的缓存之前它就不再重要了。

确保您的服务器正在发送正确的缓存标头。

答案 2 :(得分:2)

根据页面的构造方式,您可能希望将jQuery放在页面底部。在这种情况下,加载jQuery根本不应该影响可见性能,你应该随意包含它。

答案 3 :(得分:1)

如果您观察到最佳性能实践,请总结其他答案中的各种优点:

  • 正确的标头,以确保可用的缓存(ExpiresLast-ModifiedETag等)
  • 正确放置脚本标记(尽可能靠近</body>
  • 缩小/ gzip的

就用户体验而言,影响应该可以忽略不计。事实上,取决于使用习惯,包含可能有助于延长缓存时间,并且整体提高性能。

答案 4 :(得分:0)

我个人认为,因为我知道jquery文件将被缓存,我只是有范围蔓延并且一直认为客户端需要一些当前没有任何功能的页面上的功能 - 所以整体不能如果它已经嵌入绝大多数页面中,真的会输掉...假设这个页面不是一个独立的/登陆页面,在这种情况下我可能会排除它。

答案 5 :(得分:0)

浏览器将在缓存中使用jquery,但它仍然会对您的服务器进行有条件的访问以检查它是否未更改且不应更新。解析<script>标记时,浏览器将阻止执行此条件获取(希望快速,但仍然是30-50ms),然后解析并执行jquery代码(额外的10ms)。

如果您对另一个请求没有问题,并且对于不使用jquery的每个其他页面减速40-70ms,我认为没问题。