Javascript 一个请求多个 JS 文件
Javascript one request for multiple JS files
我正在考虑创建可以执行以下操作的脚本:
- 从服务器上使用的JS目录中获取所有javascript。
- 将所有脚本合并为一个 - 这将只发出一个请求而不是多个请求
- 缩小组合脚本
- 缓存文件
假设需要加载文件的顺序写在配置文件中的某个地方。
现在,当我加载 myexamplepage.com 时,我实际上使用了jQuery,backbone,mootools,prototype和其他一些库,但是我没有要求服务器提供这些多个文件,而是调用 myexamplepage.com/js/getjs,我得到的是组合和缩小的JS文件。这样我就可以消除对服务器的额外请求。当我在网上阅读有关加速您的网站的信息时,我发现您对服务器发出的请求越多,您的网络就越慢。
由于我对编程世界很陌生,我知道我想到的许多东西已经存在,我不认为这也是例外。
因此,请列出您所知道的与我所描述的完全或相似的内容。(请注意,每次想要更改脚本时,您不需要使用任何类型的缩小器或第三方软件,您保留原始文件结构,您只需使用类助手)
附言我认为相同的方法也可以用于CSS文件。
我正在使用PHP和Apache。
让服务器即时执行此操作,我建议提前执行此操作:只需连接脚本并通过非破坏性简化器运行它们,例如jsmin
或"简单"模式下的Google闭包编译器。
这也使您有机会在该文件上放置版本号,并为其提供较长的缓存寿命,以便用户不必在每次访问页面时重新下载它。例如:假设网页内容更改得足够频繁,以至于您将网页上的缓存标头设置为每天过期。当然,你的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
假设您将 AMD 模块用于您的 javascript,此项目将按需创建高度可缓存的层。 它还具有您可能感兴趣的其他功能。
- JS文件的路径正在消失
- 我的外部js文件无法加载
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 动态加载和卸载js文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何将模板中的标记脚本移动到.js文件中
- 什么's是连接供应商js文件的最佳方式
- 如何在定义js文件后为外部javascript文件设置变量
- 如何在JS文件中获取资源(.resx)字符串
- 将*.js文件的内容放入Object中
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 如何定义一个模块并使用它来分离js文件
- Angular JS文件上传到托管服务器
- 如何引用HTML中节点模块中的js文件
- 如何将JS文件从其他文件夹链接到页面