ajax解決緩存問題

在做一個AJAX處理,由於發送的ajax不只一個,一連發送好幾個請求

在網速慢的時候,導致返回的數據重複

在網上找到一篇文章
做了一個聊天室,用setTimeout+AJAX來讀取數據,當網速慢時同一句話會重複多次,網速好的時候就不會,這是爲什麼呢

最佳答案
Ajax是會有這中問題,因爲你的請求鏈接沒有變,所以他不會每次都請求,而是使用緩存中的數據,最有可能是第一次請求的結果。 解決把法: 爲請求鏈接設計變化的參數 var url = "request.php?date="+new Date(); 網速慢時數據更新慢,你的Ajax傳的數據是重複的。我認爲通過上面的設置變參的方式可以解決。
 
 實質上一連發送好幾個請求跟setTimeout+AJAX都有一個問題,一連串的發送數據
但是服務端並不是按這個順序把數據處理完的 方法2: 請求的URL後面加上個隨機數Math.random 緩存的問題 或者 xmlHTTP.setRequestHeader("If-Modified-Since","0");   這樣是正規的做法 再copy一篇文章 做一個項目用到Ajax,開始覺得挺好,後來發現一個問題,例如刪除一項,恢復之後就不能再接着刪除, 必須要等一段時間,後來知道是IE緩存的問題 AJAX緩存頁面是一個剛接觸AJAX的人一定會遇到的問題,造成這個問題的關鍵性人物又是Ie...     終於讓我找到了一個好辦法,那就在ajax發送請求前加上
Javascript代碼
  1. xmlHTTP.setRequestHeader("If-Modified-Since","0");  
xmlHTTP.setRequestHeader("If-Modified-Since","0");
也就是類似於這樣:
Javascript代碼
  1. xmlHTTP.open("get", URL, true);  
  2. xmlHTTP.onreadystatechange = callHTML;  
  3. xmlHTTP.setRequestHeader("If-Modified-Since","0");  
  4. xmlHTTP.send();  
xmlHTTP.open("get", URL, true); xmlHTTP.onreadystatechange = callHTML; xmlHTTP.setRequestHeader("If-Modified-Since","0"); xmlHTTP.send();
怎麼樣,很簡單吧!!之前找的什麼在URL家一個隨即數什麼的,我用了下,不是很好用。
現在就把使用的具體代碼貼下來吧!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章