所以我有一個網站上載內容的AJAX系統,它的工作原理是這樣的:Microsoft Edge緩存Ajax請求?
當點擊一個按鈕,一個JavaScript函數被調用:
onclick="doSomething('abc')"
我的JavaScript看起來像這樣:
//Ajax
var xmlhttp;
function loadXMLDoc(url,cfunc) {
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=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function doSomething(var) {
loadXMLDoc("http://www.website.com/ajax/doSomething.php?var="+var, function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("response-container").innerHTML=xmlhttp.responseText;
}
});
}
就稱爲Echo的文字有點像這樣的PHP文件:
echo "Response here";
通常,我使用這種類型的系統在每次運行這個Javascript函數時在具有特定id的元素中加載新內容。
這已經完美工作了3年多,但由於某些原因,Microsoft Edge正在緩存這方面的響應。所以內容沒有被正確生成。所以你只運行一次,並且在x時間內它將繼續返回相同的緩存響應。
任何想法是什麼正確的修復這是什麼?我已經看到使用標題的提及,但我不確定如何在這種情況下應用修補程序。
你試過添加時間戳的查詢字符串參數?我用它來強制CSS文件不被緩存。即''var =「+ var +」&ts =「+ Date.now()' – Quantastical
緩存ajax請求是一個常見問題,瀏覽器往往會越來越積極地緩存,帶有時間戳值的附加請求參數是一個常用的解決方法 –