停止被缓存的jQuery .load响应
我有以下代码对URL进行GET请求:
$('#searchButton').click(function() {
$('#inquiry').load('/portal/?f=searchBilling&pid=' + $('#query').val());
});
但返回的结果并不总是反映出来。 例如,我改变了堆栈跟踪的响应,但是当我点击搜索按钮时堆栈跟踪没有出现。 我查看了控制ajax响应的底层PHP代码,它有正确的代码,并直接访问该页面显示正确的结果,但由.load返回的输出是旧的。
如果我关闭浏览器并重新打开它,它会工作一次,然后开始返回陈旧的信息。 我可以通过jQuery控制这个,还是需要让我的PHP脚本输出头文件来控制缓存?
如果您想要基于每个请求控制缓存,则必须使用更复杂的函数,如$.ajax()
。 或者,如果您只想关闭所有内容,请将其放在脚本的顶部:
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});
以下是如何根据每个请求控制缓存的示例
$.ajax({
url: "/YourController",
cache: false,
dataType: "html",
success: function(data) {
$("#content").html(data);
}
});
一种方法是在网址的末尾添加一个唯一的编号:
$('#inquiry').load('/portal/?f=searchBilling&pid=' + $('#query').val()+'&uid='+uniqueId());
在每次调用uniqueId()时,都会返回不同的内容。
链接地址: http://www.djcxy.com/p/13573.html上一篇: Stop jQuery .load response from being cached
下一篇: How to measure execution time of javascript code with callbacks