2009-02-18 61 views
1

我正在做一点点的Ajax,我得到一个静态的HTML文件,实际上是不时在磁盘上更改。当然,IE有一个问题,它希望通过缓存我不想要的文件来提供帮助。我知道如何在抓取动态文件时解决这个问题:您只需更改动态文件中的标题即可。但是,我如何做这个静态HTML文件?请注意,我使用的是Apache。如何设置不使用apache的html文件缓存头?

感谢

回答

1

如果你可以使用mod_expires马塞尔建议,可以随时添加一个随机的请求参数。

例如,您可以请求static_file.html?_=1231231231而不是请求static_file.html,并且每次更改该请求参数。

jQuery有这样做的非常简单的方法:

$.ajax({cache: false, url: static_file.html}); 
3

在Apache的水平,你可以设置使用指定mod_expires模块文件的到期日。

从文档:

该模块控制所述过期HTTP报头和在服务器响应的缓存控制HTTP标头的最大年龄指令的设定。截止日期可以设置为相对于源文件上次修改时间或客户端访问时间。

这些HTTP标头是一条关于文档的有效性和持久性的指示。如果缓存,文档可能会从缓存中获取,而不是从源中获取,直到这段时间过去。之后,缓存副本被视为“过期”并且无效,并且必须从源获得新的副本。

更多细节在http://httpd.apache.org/docs/2.0/mod/mod_expires.html