2

I am working for an intranet application. Therefore I have some control on the client machines. The JavaScript library I am using is somewhat big in size. I would like to pre-install OR pre-load OR cache the JavaScript library on each machine (each browser as well) so that it does not travel for each request. I know that browsers do cache a JavaScript library for subsequent requests but I would like the library to be cached once for all subsequent requests, sessions and users.

What is the best mechanism to achieve this?

4

2 回答 2

4

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

  • GZip 一切;
  • 缩小所有 Javascript 和 CSS;
  • 尽量减少外部 HTTP 请求的数量。尝试将这些保留在 1-5 个 JS 文件、1-5 个 CSS 文件和一些图像中。如果你有很多图片,你可能想要使用CSS spriting
  • 对图像、CSS 和 Javascript 进行版本化;和
  • 对所有图像、CSS 和 Javascript 使用远期 Expires 标头。

最后两点意味着内容被缓存,直到它发生变化。官方发布可以使用实际的版本号(例如 jquery-1.4.2.min.js,1.4.2 是版本号)。对于您自己的应用程序的代码,您通常会使用文件的 mtime(上次修改时间)之类的内容作为查询字符串。例如:

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

之后?是从文件的修改时间生成的。客户端下载它一次,并且由于遥远的未来Expires标头,在版本号更改之前不会再次下载它,直到文件更改才会发生。

于 2010-03-15T07:10:33.613 回答
0

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

于 2013-09-27T00:01:37.613 回答