我有一个html页面index.htm
,其中有一个链接,通过ajax请求将div传递给另一个html zoom.htm
,并将其附加到正文,但是当我在{{{ 1}},更改没有反映出来,像zoom.htm
这样的东西被保存在某个地方(缓存),它从缓存中获取div(我不知道它是否真的被缓存)。即使我从我的项目中删除了zoom.htm,它仍然显示其内容。
zoom.htm
答案 0 :(得分:0)
要防止获得缓存响应,您只需通过附加时间戳来确保每次都是唯一的URL:
'zoom.htm?' + new Date().getTime()
答案 1 :(得分:0)
如果您获得的响应来自缓存,请尝试检查调试器。在Chrome开发者工具中,通常会将其标记为“(来自缓存)”。在Chrome中,您也可以强制禁用缓存。打开开发人员工具,然后单击右下方的齿轮。然后会显示叠加层。单击“禁用缓存”。进一步的请求不会使用缓存的对象。
此外,如果您使用的是某种CMS,则可能还需要禁用服务器端缓存,如果它可以选择这样做
另一方面......你在编辑正确的文件吗?您可能正在编辑该文件的副本,而不是您要检索的文件的副本。一直发生在我身上。
答案 2 :(得分:0)
测试zoom.htm beeing是否为缓存版本的最简单方法是清除浏览器缓存。例如,Firefox中的“编辑>偏好设置>高级:缓存网页内容=>立即清除”。
然后,假设您的服务器类似于Apache,您可以阻止浏览器使用Header指令缓存您的zoom.htm文件(即在项目目录中创建.htaccess文件),如下所示:
<filesMatch "\.(html|htm|js|css)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>
如askapache所示。希望它有所帮助。