0

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

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

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

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

由于我对编程世界很陌生,我知道我想到的很多东西已经存在,我不认为这也是例外。

因此,请列出您所知道的与我所描述的完全或相似的内容。(请注意,每次您希望更改脚本时,您都不需要使用任何类型的缩小器或第三方软件,保持原始文件结构,你只使用类助手)

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

我正在使用 PHP 和 Apache。

4

3 回答 3

2

我建议不要让服务器即时执行此操作:只需连接脚本并通过非破坏性压缩器运行它们,例如“简单”模式下jsminGoogle Closure Compiler

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

如果您真的想即时执行此操作,如果您使用的是 apache,则可以使用mod_pagespeed.

于 2012-04-19T12:26:43.697 回答
1

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

于 2012-04-19T12:29:07.120 回答
0

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

假设您在 javascript 中使用 AMD 模块,该项目将根据需要创建高度可缓存的层。它还具有您可能感兴趣的其他功能。

于 2013-10-05T02:34:00.330 回答