我想知道是否有可能清除特定 AJAX 方法的缓存。
假设我有以下代码:
$.ajax({
url: "test.html",
cache: true,
success: function(html){
$("#results").append(html);
}
});
现在大部分时间应该可以使用缓存结果,因为它应该始终具有相同的内容。但是,如果用户更新此内容,则会更改它。(当然)如果它已被缓存,则仍将显示旧内容。因此,如果我可以挑选出此方法的缓存并清除它,那就太棒了,所有其他缓存的内容都将保留。这可以做到吗?
编辑
我不明白。我看到如果将缓存设置为false,则会创建一个唯一的URL以防止浏览器对其进行缓存。 我的问题是,我希望它被缓存,直到有人对其进行更新。 然后,只要他们再次点击它,它就不应该被缓存。 然后它应该再次被缓存。 基本上,我有一个更新模型对话框(jquery UI),它会带来一个更新表格行的表单,以便用户可以更新表格行。 当他们单击“更新”时,它将更新该表格行。现在,一个列可以有几段文字的数据,这使得表格看起来很糟糕。因此,为了保护表格,我在它的位置上放了一个名为“显示数据”的链接。 现在,当它被点击时,它将显示一个对话框模型框,并从服务器获取数据。 如果他们点击5次,它就会重新加载5次。 这就是为什么我想要缓存它。然而,如果他们单击它并被缓存,然后由于某种原因他们去更新该行并单击“显示数据”,他们将获得缓存版本,而不是更新版本。 我可能可以使用jquery隐藏所有段落,并在需要时显示它们,但我宁愿根据需要进行操作。 否则,将有很多垃圾被隐藏,这将减慢页面(想象一下,如果某个人有50行,每行的列都有1000个字符)。
jQuery.ajax
的参数cache: false
应该会有所帮助。 - Oleg