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

2021-08-29 16:48:58 字數 1108 閱讀 3580

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

Ajax中請求被快取的問題

ajax中請求被快取的問題 在ajax開發中,會遇到瀏覽器快取內容的問題,比如,某個元素註冊了滑鼠事件 onmouseover 事件觸發後會通過 xmlhttprequest到伺服器獲取內容,在不重新整理頁面的情況下,瀏覽器會快取第一次請求的內容,服務端更新後瀏覽器仍然顯示第一次的內容。通常,這種請...

Ajax之快取問題的解決

在ajax的get請求中,如果執行在ie核心的瀏覽器下,其如果向同乙個url傳送多次請求時,就會產生所謂的快取問題。快取問題最早設計初衷是為了加快應用程式的訪問速度,但是其會影響ajax實時的獲取伺服器端的資料。產生快取的問題就是 我們的客戶端向同乙個 url 傳送了多次請求 如果我們每次請求的ur...