我正在本地開發。和我使用AJAX驗證碼:當xmlhttp請求時,IE9從緩存(可用時)而不是服務器加載
function getChart(num,ld,margin,idr)
{
idr = typeof(idr) != 'undefined' ? idr : 0;
$(ld).style.display="inline-block";
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)
{
$(ld).style.display="none";
//to place boxes next to each other
$("sign_"+num).style.margin=(margin+7)+"px 590px 0 0";
if(num=="ph"&&$("sign_fx").style.marginTop==$("sign_"+num).style.marginTop&&$("sign_fx").style.marginRight=="590px")
{
$("sign_"+num).style.marginRight="605px";
}
else if(num=="fx"&&$("sign_ph").style.marginTop==$("sign_"+num).style.marginTop&&$("sign_ph").style.marginRight=="590px")
{
$("sign_"+num).style.marginRight="605px";
}
else if(num=="fx")
{
$("sign_ph").style.marginRight="590px";
}
else if(num=="ph")
{
$("sign_fx").style.marginRight="590px";
}
$("sign_"+num).style.display="block";
$(num+"_request_ld").style.display="none";
$(num+"_request_all").style.display="block";
$(num).style.display="block";
$(num+"_request").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","barchart.php?idu=<?php echo $id_signed_in;?>&num="+num+"&idr="+idr,true);
xmlhttp.send();
}
當參數在getChart
功能相同(意思getChart
被稱爲具有相同的參數),IE加載從緩存和不打擾調用服務器即使在刷新頁面時也是如此。在刪除緩存時,它從服務器獲取數據。這是因爲我在本地開發?
您是否嘗試過在你請求的末尾添加一個隨機參數到barchart.php? – j08691 2012-02-13 15:25:41
是的,通過將它們分配給'getChart'函數,它首次從服務器加載它們,然後在重複時使用從catch中加載的參數進行重複,這意味着不會捕獲數據庫中的任何更改。它一直這樣做,直到我刪除捕獲然後它開始了同樣的問題。 – 2012-02-13 15:29:30
由於您使用的是jQuery或其他lib,因此您應該使用庫的Ajax調用,而不是滾動自己的。 (你不應該測試IE6的ActiveObjects等) – 2012-02-13 15:43:00