停止被缓存的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