主动缓存与Intranet站点Javascript文件的组合

主动缓存与Intranet站点Javascript文件的组合,javascript,performance,caching,intranet,Javascript,Performance,Caching,Intranet,我正在努力提高我公司内联网页面的页面性能。我们希望(动态地)组合我们的javascript文件,并将它们缓存30多天。每个人登录后都会启动该页面 我的一位同事问,如果我们已经将JS文件缓存了一个月,那么是否值得花时间合并这些文件。他对两者都做犹豫不决,因为组合工具是服务器端的,不在我们的桌面上运行,需要一些黑客的解决方法 我一直在做一些研究,我看到的大多数性能建议都是针对外部站点的。因为我们处于一个封闭的系统中,所以一旦每个人的缓存都已启动,我们似乎就不会从组合文件中获得太多好处。合并这些文件会

我正在努力提高我公司内联网页面的页面性能。我们希望(动态地)组合我们的javascript文件,并将它们缓存30多天。每个人登录后都会启动该页面

我的一位同事问,如果我们已经将JS文件缓存了一个月,那么是否值得花时间合并这些文件。他对两者都做犹豫不决,因为组合工具是服务器端的,不在我们的桌面上运行,需要一些黑客的解决方法

我一直在做一些研究,我看到的大多数性能建议都是针对外部站点的。因为我们处于一个封闭的系统中,所以一旦每个人的缓存都已启动,我们似乎就不会从组合文件中获得太多好处。合并这些文件会给我们带来什么,而积极的缓存不会


如果这有什么不同的话,我们现在使用IE8。

拥有多个JavaScript文件最显著的影响是渲染页面所需的时间。每个脚本标记将分别处理,并为整个渲染过程添加时间

在这里可以找到一个很好的答案@

如果我们讨论的是大量脚本,那么您可能会看到渲染时间的改进;如果只是两个或三个文件,那么一旦文件被缓存,它可能不会带来明显的差异

我建议在这两种情况下测试页面呈现时间,看看您在您的情况下看到了多少改进,并根据这些信息做出决定

作为一个有用的例子,这里有一些来自(我不久前创建的运行时缩小工具)的统计数据;请注意从加载到准备使用组合脚本与未组合脚本之间的时间差异

  • 将所有JavaScript文件合并成一个大文件(从而最大限度地减少对服务器的请求数量),并将其名称设置为类似“application_234234.js”的名称;该数字表示您最后一次更改文件的时间,有助于浏览器知道它是新文件(因此更改文件时不会缓存)
  • 添加Expires或Cache Control标头(将其设置为真正的将来)。由于文件名在每次修改时都会更改,因此您不必担心
  • 最后也是最重要的一点,压缩并gzip JavaScript文件

  • 这些是一些重要的建议,但要了解更多关于以下方面的最佳实践:

    我已经尝试实践这些建议了。我们正在使用一个运行时合并工具,该工具运行在我们的web服务器上,根据请求合并文件。在部署之前,我的团队对合并/缩小文件有很多阻碍,因为我们必须使用的工具使我们很难使用这些工具进行本地开发。我建议您的团队还应该设置“开发”环境,在这种环境中,文件不会缩小或压缩为单个文件。我想这会让你们的生活更轻松。我已经发现了所有这些,我很想简化Javascript的加载,但是页面上有几十个内联脚本标记,需要进行大量的重写。我的问题是,如果他们引用的脚本已经被缓存,那么多个脚本标记相对于一个脚本标记的影响。@Zoho-即使脚本已经被缓存,解析JS所需的时间仍然适用;如前所述,相关SO问题的链接提供了更多详细信息。因此,您的问题的答案是,使用更多脚本标记呈现页面可能需要更多的时间。我认为解析多个js文件会更慢,即使它们被缓存,我只是没有什么可引用的。谢谢