今天在專案中遇到乙個奇怪的問題:
每隔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肯跌啊。但是 奇怪的是...