首頁 >後端開發 >php教程 >ajax2—解決快取問題—php(28)

ajax2—解決快取問題—php(28)

WBOY
WBOY原創
2016-08-08 09:24:201197瀏覽

五、ajax快速入門

ajax代碼:

Php程式:

六、發送資料

Ajax的get請求時,要傳送的資料需要附加到url的後面

Ajax的post請求時,要傳送的資料需要放到send方法的參數中

Ajax代碼:

Php代碼:

故意將請求的url寫錯,我們發現,即使用請求了一個不存在的url,那麼ajax物件的狀態碼最終也會等於4,並且執行相應的語句,而我們希望如果請求的是一個錯誤頁面,那麼就不應該執行對應的語句

做一些相應的修改

利用ajax計算兩個數的和

七、解決快取問題

以上的問題:

將php中的加法改成減法

如果用之前的請求參數,發現還是加法,如果是新的請求參數就是減法運算。

解1:  隨機數

Math.random(); 

在url後面產生一個js隨機數,讓這次請求的url是唯一的,所以每次請求回來就是最新的資料

但是,我們知道,這種方法沒有根本解決快取問題,它只是產生大量的快取檔案

還有一點:隨機數字並不能保證這個url是絕對唯一的

解決方法2:

 時間

new Date().getTime();   //取得毫秒時間戳

以上這種方法直接將時間戳附加url後面,使當前url唯一,這種方法從執行上來講,它永遠是唯一的

但是,它仍然會在臨時檔案下,產生大量快取檔案。

解決方法3、  設定請求頭

setRequestHeader("If-Modified-Since","0");

原理:利用ajax物件在發送http請求之前,設定了http請求頭訊息,表明當前要請求的資源最後修改時間是“0”,伺服器拿到這個時間之後,會與伺服器上的這個檔案的最後修改時間進行比較,如果不同,那麼傳回最新執行結果。

這種方式,最後始終只有一個快取檔案。

 解決方法4、  設定回應頭

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

利用php的header函數向回應頭中寫數據,寫的是告訴客戶端:不要對本次的結果進行快取。

這種做法,可以從根本解決快取問題,不產生任何快取檔案。

例題:

校驗使用者名稱是否可以使用

 

以上就介紹了ajax2—解決快取問題—php(28),包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn