在使用者使用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, 譯\蔡學鏞, 出版社\歐萊禮
訂閱:
張貼留言 (Atom)
0 comments:
張貼留言