繁体   English   中英

用Javascript处理多个JS文件的请求

[英]Javascript one request for multiple JS files

我正在考虑创建执行以下操作的脚本:

  1. 从服务器上使用的JS目录获取所有JavaScript
  2. 将所有脚本合并为一个-只会发出一个请求,而不是多个
  3. 缩小组合脚本
  4. 缓存文件

假设需要加载文件的顺序写在某个地方的配置文件中。

现在,当我加载myexamplepage.com时,我实际上使用了jQuery,骨干网,mootools,prototype和其他一些库,但是我没有向服务器询问这些多个文件,而是调用了myexamplepage.com/js/getjs,我得到的是合并并缩小的JS文件。 这样,我就消除了对服务器的那些额外请求。 当我在网上阅读有关加速您的网站的信息时,我发现您对服务器的请求越多,您的网站就变得越慢。

因为我对编程世界还很陌生,所以我知道我已经想到了很多东西,因此我也不认为这也是例外。

因此,请列出您所知道的与我描述的内容完全相同或相似的内容。(请注意,您每次需要更改脚本时都不需要使用任何种类的压缩程序或第三方软件,您可以保留原始文件结构,您只使用班级助手)

PS我认为同样的方法也可以用于CSS文件。

我正在使用PHP和Apache。

建议不要事先进行服务器操作,而是建议提前进行操作:只需串联脚本并通过“简单”模式下的jsminGoogle Closure Compiler等无损压缩程序运行它们即可。

这也使您有机会在该文件上放置一个版本号,并具有较长的缓存寿命,从而使用户不必在每次访问该页面时都重新下载它。 例如:假设页面的内容更改频率足够高,以至于您在页面上设置了高速缓存标头,说它每天过期。 自然,您的JavaScript并非每天都会更改。 因此,您的page.html可以包含一个名为all-my-js-v4.js的文件,该文件的缓存寿命很长(例如一年)。 如果您更新JavaScript,请创建一个名为all-my-js-v5.js的新的多合一文件,并更新page.html以包括该文件。 下次用户看到page.html ,他们将请求更新的文件。 但在那之前,他们可以使用其缓存的副本。

如果您真的想即时执行此操作,并且您正在使用apache,则可以使用mod_pagespeed

如果您使用的是.NET,我可以推荐Combres 它可以对JavaScript和CSS文件进行组合和压缩。

我知道这是一个老问题,但是您可能对此项目感兴趣: https : //github.com/OpenNTF/JavascriptAggregator

假设您为JavaScript使用AMD模块,则该项目将按需创建高度可缓存的层。 它还具有您可能感兴趣的其他功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM