2008-05-23

Ajax - 解決IE、Opera的快取處理問題

在使用者使用IE或Opera…等瀏覽器瀏覽網頁時,該瀏覽器會將使用者所瀏覽過的URL資料或圖片存放在快取區。這類型的瀏覽器將會持續追蹤使用者對伺服器所發出的請求,所以若使用者又對相同的URL發出相同的請求(資料或參數都相同),瀏覽器就會認定使用者想得到相同的回應,此時瀏覽器就會直接從快取區調出上次所請求的回應重複使用,而不會在對伺服器發出請求。

這就是為什麼有時候瀏覽網頁時,對於不想再重複輸入表單的使用者按下重新整理或送出後,卻得到"相同"的回應(為非預期的回應),而且回應速度明顯的比第一次送出請求時快。


在網頁設計時的解決方案是:在原送出的URL加上"假參數"
 例如: var url = "test.php";
    → url = url + "?orz=" + new Date().getTime();
     request.open("GET", url, true);
     …
 此時送出的URL可能會像這樣:
     test.php?orz=11568897116…(自1970/01/01至現在的秒數)
 由於伺服器端的script沒有對於這樣的參數做處理,所以會置之不理。


那什麼時候使用快取呢?
 當送出的資料與相對應的回應資料必定相同時,使用快取可節省時間。

--
參考書目/資料來源:
 Ajax快速上手, 作者\Brett Mclaughlin, 譯\蔡學鏞, 出版社\歐萊禮
Read rest of entry
 

My Favorite Stuff

Akon - We Don't Care
(Official Music Video)

Official AKON Website
About AKON(from Wiki)

My Links

Blogger
Others

Blog Statistics