Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止JQUERY.load从缓存加载_Jquery_Html_Http - Fatal编程技术网

防止JQUERY.load从缓存加载

防止JQUERY.load从缓存加载,jquery,html,http,Jquery,Html,Http,似乎在IE9中,使用jquery.load将从浏览器缓存中提取数据,因此AJAX加载内容的“实时”效果不起作用。是否有任何类型的开关来强制jquery.load以获得新的数据 坦斯克 在您尝试加载的页面内容上,使其先发送标题,以便请求不会使用缓存 例如,在代码顶部添加以下行 <?php header("Cache-Control: no-cache"); header("Pragma: no-cache"); //Other page contents that have to be l

似乎在IE9中,使用jquery.load将从浏览器缓存中提取数据,因此AJAX加载内容的“实时”效果不起作用。是否有任何类型的开关来强制jquery.load以获得新的数据


坦斯克

在您尝试加载的页面内容上,使其先发送标题,以便请求不会使用缓存

例如,在代码顶部添加以下行

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

//Other page contents that have to be loaded

?>

如果您使用的是
$.ajax
低级方法,那么jQuery中可以使用禁用缓存的选项。这在
load
的简化签名中没有表示。您可以通过确保URL始终是唯一的来模拟它。您可以将当前时间(以毫秒为单位)放在URL的末尾以实现此目的,因为这实际上总是唯一的:

url += '?_=' + Date.now();
(这假定
url
是一个包含请求url的字符串,并且当前没有任何查询参数。)

或者您可以使用
缓存
选项并将其设置为
false
,这将导致jQuery在引擎盖下向请求url附加时间戳:

$.ajax( {
    url: "foo.html",
    type: "GET",
    cache: false,
    success: function(html) {
        $("#foo").html(html);
    }
});
或者你可以使用

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

因此,每个请求都会在查询字符串中附加一个新的唯一值,为什么不直接使用
Date.now()
而不是
(new Date()).getTime()
?@Théphile呢?因为在2011年,当我写这篇文章的时候,ES5仍然得到了适度的支持!我会为今天更好的世界而改变它。2020年是多么的快乐啊。:)