开发者

Prevent JQUERY .load from cache

It seems that in IE9, using jquery .load will pull data fro开发者_JAVA百科m the browsers cache and so the 'real time' effect of AJAX loading content isnt working. Is there any kind of switch to force jquery .load to get the data fresh?

Thansk!


The option to disable caching is available in jQuery if you are using the $.ajax low-level method. This is not represented in the simplified signature for load. You could mimic it instead, by ensuring that the URL is always unique. You can put the current time in milliseconds on the end of the URL to achieve that, since that will practically always be unique:

url += '?_=' + Date.now();

(This presumes that url is a string containing the request URL and that it doesn't have any query parameters currently.)


Or you can use $.ajax and set the cache option to false which will cause jQuery to append a timestamp to the request URL under the hood:

$.ajax( {
    url: "foo.html",
    type: "GET",
    cache: false,
    success: function(html) {
        $("#foo").html(html);
    }
});


On the page content you try to load, make it to send header first so that request will not use cache...

For example, on the top of the code, add following lines

<?php
header("Cache-Control: no-cache");
header("Pragma: no-cache");

//Other page contents that have to be loaded

?>


Or you can use

elem.load(url, "f" + (new Date()).valueOf());

so that every request gets a new unique value appended to the query string

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜