2013-09-28 84 views
1

我是新的網絡開發和我從w3Schools學習AJAX。雖然學習GET請求它說,下面可能給你一個緩存的結果:緩存結果是什麼意思?

xmlhttp.open("GET","demo_get.asp",true); 
xmlhttp.send(); 

爲了避免這種情況,添加的ID是唯一的網址:

xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true); 
xmlhttp.send(); 

是什麼緩存的結果意味着?我經歷了整個例子,但不能理解,我應該何時使用第二種方法中給出的唯一ID?

+2

你絕對不應該從w3schools學習任何東西。要找出原因,請查看http://w3fools.com/。 – rid

+1

原因:http://www.w3fools.com/ – Femaref

回答

4

瀏覽器可以通過Uniqe URL緩存Http響應,因此在下次您訪問某個站點時,瀏覽器將不會發送http請求,而是從其緩存存儲中顯示該URL的最後一個響應。

當您使用隨機因子創建URL(在這種情況下,存在查詢字符串變量名t隨機值),這可以防止瀏覽器緩存響應。

第一種情況的瀏覽器高速緩存的URL:

demo_get.asp

demo_get.asp 從緩存

第二種情況的瀏覽器高速緩存的URL:

demo_get。 asp?r = 42350972

demo_get.asp?r = 11850753 沒有高速緩存

3

發送HTTP GET請求後,瀏覽器可能會選擇保留它收到的響應,接下來就需要提出同樣的要求,而不是發出請求時,得到它較早,目前,與其收到的響應。這叫做。

由於URL通常是由瀏覽器識別其緩存的頁面檢索的關鍵,突破此的一種方式是始終要求使用不同的URL相同的資源。這樣,瀏覽器將存儲對每個URL的響應,但不太可能再次檢索存儲的頁面,因爲新URL與上次用於存儲響應的URL不同。

另一種方法來控制緩存將是使用所述caching capabilities內置在HTTP協議。

+0

待辦事項瀏覽器緩存的.asp/.jsp頁面呢?這是你想說的嗎? –

+0

@RakeshJuyal,無論使用何種服務器技術生成它,瀏覽器都會緩存任何響應。 – rid