Javascript用于包含html,是否缓存?

时间:2013-04-05 01:59:21

标签: javascript caching

我正在使用一种在服务器#1上创建.js文件的方法,该文件包含document.writes来编写html代码,然后一个简单的js包含在服务器#2内部的html代码中加载那个html代码(有多个服务器#2)。这基本上取代了iframe方法,其优点是每个服务器#2所有者控制自己的css。

该方法完美无缺。我的问题必须处理缓存。每次在服务器#2上加载页面时,我都希望重新加载.js,因为它会在服务器#1上频繁更改。在我测试的每个浏览器上都是这种情况,但是我可以依赖它作为默认情况,还是依赖于浏览器设置?尽管我已经阅读了所有关于缓存的内容,但我无法弄清楚是什么触发了这样的情况下的负载。

2 个答案:

答案 0 :(得分:1)

您可以使用服务器端的HTTP标头控制浏览器缓存。与cache-controlcache-expiration一样。更多信息 - http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

答案 1 :(得分:1)

在这种情况下,缓存由js文件的缓存策略触发。 html文件。

浏览器不会缓存渲染的页面(好吧,它会用于后退按钮,但这不是我们所说的)。浏览器缓存源文件。因此,即使将html页面配置为长时间缓存,只要将javascript注入的内容配置为缓存,它们才会被缓存。

要配置缓存策略,您需要在服务器端设置特定标头。有时您可以在CGI脚本中执行此操作。有时您可以在服务器配置文件中执行此操作。

谷歌“http缓存”并阅读有关如何配置要缓存或未缓存的页面(也是谷歌“json禁用缓存”或“ajax禁用缓存”,因为这个问题与ajax相关很多)。