如何禁用浏览器缓存?

时间:2012-12-28 11:05:42

标签: jquery caching browser

我有一个更新html的ajax函数(在jquery中)。没关系。 现在,当我点击地址栏中的输入(刷新)时,我的html没有更新(旧内容)。 然而,当我做cmd + R时,我的HTML总是好的。

有什么问题?为什么我的内容会显示地址栏中的旧内容?

编辑:

我在jQuery中使用Chrome et load()

5 个答案:

答案 0 :(得分:5)

如果您在浏览器中遇到缓存问题,则需要设置标头以防止在服务器端的代码中缓存(例如Php,Java,Python .....等)。

但是如果你想避免在Ajax函数中进行缓存,请使用以下代码:

 $.ajax({
              url : scriptUrl,
              type : "get", // or 'post'
              cache : false, // This is to avoid Cache in Ajax Requests
              // .........................etc
});

注意:提供有关您问题的更多详细信息,以获得更清晰的答案。

答案 1 :(得分:4)

在“head”标记内插入以下行,如下所示,

<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

答案 2 :(得分:1)

使用:

Cntl / Cmd + Shift + R

忽略Chrome中的缓存。

答案 3 :(得分:1)

提供更多详细信息将有所帮助。我认为你的ajax代码不起作用。可能是它正在获取数据但不是正确地更新页面。如果你在Firefox中,请尝试检查错误控制台。如果您要更新内容,它应该显示任何错误。

尝试使用fiddler来查找使用ajax实际获取的内容。有很多事情可以在这里发生并使它失败。

答案 4 :(得分:0)

在加载jQuery之后使用它

jQuery.ajaxSetup({ cache: false });

有关详细信息,请查看jQuery.ajaxSetup

的文档

此函数使用传递给jQuery.ajax()方法的相同选项。

请注意,这将禁用所有jQuery ajax请求的缓存。