我的JavaScript功能如下:
function getActivityDiscussed(str,id)
{
var xmlhttp;
if (str=="")
{
document.getElementById("list_bottom").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("list_bottom"+id).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","<?php echo base_url($client_url.'communications/getActivityDiscussed'); ?>/"+str,true);
xmlhttp.setRequestHeader("Cache-Control", "no-cache");
xmlhttp.setRequestHeader("Pragma", "no-cache");
xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
xmlhttp.send();
}
此ajax调用在IE-9中无效。
我已使用以下代码清除了缓存:
xmlhttp.setRequestHeader("Cache-Control", "no-cache");
xmlhttp.setRequestHeader("Pragma", "no-cache");
xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
但我必须为每个ajax请求使用这些代码。
有没有办法全局禁用缓存?
先谢谢
答案 0 :(得分:0)
您可能需要为每个解决此问题的请求添加一些随机数或字符串。
检查此链接..会有所帮助。 Prevent browser caching of jQuery AJAX call result
答案 1 :(得分:0)
据我所知,JavaScript中没有这样的机制。您必须定期重复它,否则您可以在函数中使用这些代码并调用您想要的函数。
function clearBrowserCacheForAjax()
{
xmlhttp.setRequestHeader("Cache-Control", "no-cache");
xmlhttp.setRequestHeader("Pragma", "no-cache");
xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
}
在每个功能中,您可以调用上述功能。
function getActivityDiscussed(str,id)
{
var xmlhttp;
if (str=="")
{
document.getElementById("list_bottom").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("list_bottom"+id).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","<?php echo base_url($client_url.'communications/getActivityDiscussed'); ?>/"+str,true);
clearBrowserCacheForAjax();
xmlhttp.send();
}