如何缓存我的javascript文件以提高性能

时间:2011-12-10 00:42:19

标签: javascript jquery caching

所以这是我的标题:

<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.14.custom.min.js"></script> 
<script type="text/javascript" src="js/jdpicker/jquery.jdpicker.js"></script> 
<script type="text/javascript" src="js/uniform/jquery.uniform.min.js"></script> 
<script type="text/javascript" src="js/jquery.hotkeys.js"></script> 
<script type="text/javascript" src="js/visualize/visualize.jQuery.js"></script> 
<script type="text/javascript" src="js/jquery.cookie.js"></script> 
<script type="text/javascript" src="js/fancybox/jquery.fancybox-1.3.4.pack.js"></script> 
<script type="text/javascript" src="js/jwysiwyg/jquery.wysiwyg.js"></script> 

所有这些都必须加载并且它滞后我的网站如何让它们缓存,以便加载时间更快

4 个答案:

答案 0 :(得分:6)

你的裤子里装了很多JavaScript!我的建议是(请不要被冒犯,因为我相信你已经采取了很多这些步骤):

  • 确保您在页面上需要所有这些js文件。你在使用fancybox吗?你在用cookie.js吗?如果您可以从列表中删除任何js文件,请执行此操作。
  • 是否可以通过 CDN 获取这些js文件? jQuery是。 jQuery UI是。这将减少服务器的负载,许多用户可能已经在他们的网站上使用这些js库的缓存版本来到您的网站!
  • 您可以换出的库的更轻版本吗?如果是这样,请交换'em!
  • 对于您在本地托管的文件,缩小并混搭。如果您在Visual Studio中工作,则可以使用ChirpyCombres。如果您不使用Visual Studio,那么还有很多其他很酷的工具可以帮助您减少CSS和JS资产的大小。
  • 考虑使用 Less for CSS和CoffeeScript for JS 。它们会加快您的开发周期并且它们会预先优化您的许多代码(如果您很幸运的话)。
  • 现在你已经有了一个大的,精简的,优化的JS文件,你可以缓存它。此步骤特定于平台,因此您可能需要转到searching around

我是否错过任何重要的事情?这些是我采取的快速步骤。我想。

答案 1 :(得分:2)

我建议将所有这些缩小并合并到一个文件中 - 减少HTTP请求=更快的加载时间

答案 2 :(得分:1)

If-MatchIf-Modified-Since {/ 3}}上的{{1}}。

IIS将为其返回的任何静态内容提供标记和最后修改的标题,这意味着默认情况下浏览器会自动缓存js文件等静态资源。浏览器将尝试在每个页面加载时获取所有这些文件,但IIS将重新启动304并且浏览器将使用缓存版本。是的,有一些处理时间与发出所有这些请求相关联,但它不太可能对您的页面加载时间产生重大影响。 当你不得不下载这些文件时,这对你的第一页加载也没有任何帮助。

将第一次加载时间与第二次和第三次加载时间进行比较。你可以在Firebug中轻松检查它。如果它们没有很大差异,那么问题可能不是js文件的下载大小,而是执行的js代码的复杂性(假设HTML加载足够快)。

减少全局初始值设定项(即仅在1页上使用但在站点上的所有页面上执行的代码)。将代码移出内联脚本标记并进入窗口加载事件。如果做得好,这可能有助于安静一点。

答案 3 :(得分:0)

我喜欢Minify

它将比在用户的本地计算机上缓存文件做更多的事情,并且很容易设置。一个提示:不要尝试开发/调试你的缩小代码!保持调试副本方便嘿。

这是他们首页的简介,看看它是否符合您的需求:

  

[Minify]结合多个CSS或Javascript文件,删除不必要的空格和注释,并使用gzip编码和最佳客户端缓存头提供它们