【发布时间】:2010-06-02 19:10:07
【问题描述】:
我想知道是否可以从特定的 AJAX 方法中清除缓存。
说我有这个:
$.ajax({
url: "test.html",
cache: true,
success: function(html){
$("#results").append(html);
}
});
现在 99% 的情况下,可以使用缓存的结果,因为它应该始终具有相同的内容。但是,如果用户更新此内容,它(当然)会改变。如果它被缓存,它仍然会显示旧内容。
所以,如果我可以为这个方法选择这个缓存并清除它,并且所有其他缓存的东西都会保留,那就太棒了。
这个可以吗?
编辑
我不跟随。我看到如果您将cache 设置为false,它会生成一个唯一的URL 以防止浏览器缓存它。
我的问题是我希望它被缓存,直到有人对其进行更新。然后它不应该被缓存,直到他们再次点击它。然后应该再次缓存。
基本上,我有一个更新模型对话框(jquery UI),它会显示一个更新表单,以便用户可以更新表格行。当他们单击“更新”时,它会更新该表行。现在一列可以包含几段数据,这会使表格看起来很糟糕。
所以为了保留表格,我在其中放置了一个名为“显示数据”的链接。现在,当单击它时,会显示一个对话框模型框,并从服务器中提取数据。
如果他们点击它 5 次,它会重新加载 5 次。这就是为什么我想缓存它。但是,如果他们点击它并且它被缓存,那么无论出于何种原因他们去更新该行并点击“显示数据”,他们将获得缓存的版本,而不是更新的版本。
我可能会隐藏所有段落并使用 jquery 将它们显示出来,但我宁愿按需使用。否则会隐藏很多废话,并且会减慢页面速度(想象一下,如果某个人有 50 行,而这些列中的每一列都有 1000 个字符)。
【问题讨论】:
标签: jquery