AJAX頁面引數相同時只返回快取的內容的解決辦法

2021-05-01 21:01:26 字數 1098 閱讀 2008

ajax頁面引數相同時只返回快取的內容的解決辦法

常利用ajax寫一些頁面無重新整理的內容獲取頁面,這種方式很快捷也很方便,但其中有乙個問題,就是如果兩次提交的引數相同時,返回的內容只返回上次獲取的內容,如果我們在第一次修改了引數,第二次再次呼叫卻會發現頁面根本沒有改變。這樣的情況是是為ajax獲取時先檢查本機快取,如果本機快取已有相同內容,則不訪問遠端伺服器。這樣的操作倒是可以提高速度和減少伺服器壓力。但帶來的弊端也是顯而易見的。

為了解決這個問題。我們必須在獲取頁加上乙個額外的引數。比較簡單的方法是用乙個隨機數。

例子如下

function idcheck()

//加乙個隨機數//

var number = math.random();

number = number * 1000000000;

number = math.ceil(number);

// send_request('get_book.php?book_num='+book_num+'&ranum='+number);  // 後面的 「ranum=number」是額外加的

}這樣就可以避免相同引數頁面返回同樣內容的問題了。

還有一種方法為在被呼叫的頁面中,加入**,禁止本頁面被快取

htm網頁

或者asp網頁

response.expires=-1

response.expiresabsolute=now()-1

response.cachecontrol="no-cache"

php網頁

header("expires:mon,26jul199705:00:00gmt");

header("cache-control:no-cache,must-revalidate");

header("pragma:no-cache");

jsp網頁

response.addheader("pragma", "no-cache");

response.addheader("cache-control", "no-cache,must-revalidate");

response.addheader("expires", "0");

Ajax獲取頁面被快取的解決方案

ajax頁面引數相同時只返回快取的內容的解決辦法 常利用ajax寫一些頁面無重新整理的內容獲取頁面,這種方式很快捷也很方便,但其中有乙個問題,就是如果兩次提交的引數相同時,返回的內容只返回上次獲取的內容,如果我們在第一次修改了引數,第二次再次呼叫卻會發現頁面根本沒有改變。這樣的情況是是為ajax獲取...

你該知道的ajax的cache引數,快取屬性

1.ajax的快取是什麼 ajax在傳送的資料成功後,會把請求的url和返回的響應結果儲存在快取內,當下一次呼叫ajax傳送相同的請求時,它會直接從快取中把資料取出來,這是為了提高頁面的響應速度和使用者體驗。當前這要求兩次請求url完全相同,包括引數。這個時候,瀏覽器就不會與伺服器互動。用法 aja...

解決ajax只觸發一次不更新快取的問題

今天做乙個小型的 時發現,生成的靜態頁由於採用了用jquery的ajax從後台獲取使用者session,除錯的時候發現,獲取session的ajax方法只觸發一次,第一次到頁面,觸發 此時未登入 跳轉到登入頁登入後,再返回,或到其他頁,都沒有再觸發ajax。網上找了很久,才找到解決方法,原來是用ge...