ajax獲取資料由於IE快取導致資料不更新

2021-06-10 03:15:12 字數 696 閱讀 8275

今天在專案中遇到乙個奇怪的問題:

每隔10秒就用ajax獲取資料更新頁面資料**顯示。

在ie下資料不更新。ajax獲取到的資料還是以前的資料!!苦悶ing

相反在ff和chrome瀏覽器能正確更新資料。

原始碼:var url = "***.php";

ajax.open("get", url, true); 

分析:當然第一反應就是ie的瀏覽器把資料給快取了。

原因:ie中如果xmlhttprequest提交的url與歷史一樣則使用快取,根本不向伺服器端提交。因此無法取到剛提交的資料

從網上看了好多解決的辦法:

我覺得以下這兩種還真的比較實用,特此記錄了下來:

方法1:

在請求url中加入乙個動態引數,那怕這個動態的引數對我們的程式一點用都沒有,有用沒用都無所謂。

例如時間的引數,會動態的變化,每一次提交的時候它的值都不一樣。也就是每次ajax訪問的url都不一樣,這樣ie瀏覽器就不會使用快取了。

var url = "***.php" + "×tamp=" + new date().gettime();

還可以加乙個隨機數:

var url = "***.php" + "&randomstr=" + math.random();

方法2:

把ajax訪問方式「get」改變成「post」

Ajax 受到IE快取影響

直奔主題 1 背景了解 2 問題描述 jquery下ajax輪詢請求 也就是重複執行下面的 以獲取最新的訊息即時顯示。火狐下正常更新,但是ie下get回來的都是一樣的東西!3 問題分析 因為我在後台用到了session,我以為是ie和ff對session的處理不一樣造成的,但是網上沒有一種適合的解決...

Ajax的IE快取問題

ajax的ie快取問題,會造成用open時用get方法不能重複提交。解決的辦法有以下幾種 1.客戶端在url後新增隨機數.new date gettime 或者math.random 或者送請求前加上 或者用post方法提交 2.伺服器端禁用快取.response.setheader pragma ...

IE8 ajax快取問題

娘希匹,又遇到快取問題了。下面的 在其他瀏覽器都是正常的,但是在ie8中出現詭異問題。ajax 經過仔細排查,尼瑪是 ie8 存在的 ajax 快取問題。尼瑪,執行到這裡,實際上,並沒有訪問我們後台的 而是使用了以前快取的結果,後台進行除錯時,沒有反應,才發現是這個問題!ie8肯跌啊。但是 奇怪的是...