Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何最好地预安装、预加载或缓存JavaScript库以优化性能?_Javascript_Performance_Caching_Preload - Fatal编程技术网

如何最好地预安装、预加载或缓存JavaScript库以优化性能?

如何最好地预安装、预加载或缓存JavaScript库以优化性能?,javascript,performance,caching,preload,Javascript,Performance,Caching,Preload,我正在为一个内部网应用程序工作。因此,我可以控制客户端机器。我正在使用的JavaScript库有点大。我希望在每台机器(每台浏览器)上预安装、预加载或缓存JavaScript库,这样它就不会针对每个请求进行传输。我知道浏览器会为后续请求缓存JavaScript库,但我希望为所有后续请求、会话和用户缓存一次该库 实现这一点的最佳机制是什么?您不需要为此访问客户端计算机。最佳实践都是服务器端的: GZip一切 缩小所有Javascript和CSS 尽量减少外部HTTP请求的数量。试着保持这些,比如

我正在为一个内部网应用程序工作。因此,我可以控制客户端机器。我正在使用的JavaScript库有点大。我希望在每台机器(每台浏览器)上预安装、预加载或缓存JavaScript库,这样它就不会针对每个请求进行传输。我知道浏览器会为后续请求缓存JavaScript库,但我希望为所有后续请求、会话和用户缓存一次该库


实现这一点的最佳机制是什么?

您不需要为此访问客户端计算机。最佳实践都是服务器端的:

  • GZip一切
  • 缩小所有Javascript和CSS
  • 尽量减少外部HTTP请求的数量。试着保持这些,比如说,1-5个JS文件,1-5个CSS文件和一些图像。如果你有很多图像,你可能想使用
  • 您可以使用图像、CSS和Javascript的版本;及
  • 对所有图像、CSS和Javascript使用一个标题
最后两点意味着内容将被缓存,直到更改为止。官方版本可以使用实际版本号(例如jquery-1.4.2.min.js,1.4.2是版本号)。对于您自己的应用程序的代码,您通常会使用文件的mtime(上次修改时间)之类的内容作为查询字符串。例如:

<script type="text/javascript" src="/js/code.js?1233454356"></script>


根据文件的修改时间生成
后?
。客户端下载它一次,由于将来的
过期
头文件,在版本号更改之前不会再次下载,直到文件更改之后才会再次下载。

将逻辑与JSs上的执行分开,然后您可以在第一次用户访问时加载脚本(逻辑),然后使用会话/cookie,您不再加载这些文件,但它们将在缓存中,然后,当您需要脚本时,只需包含它们,它们将从缓存中隐藏