五、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教學有興趣的朋友有幫助。