2011-12-01 52 views
0

jQuery的:Ajax中的jQuery Cache參數 - 他在哪裏保存緩存的數據?

*cacheBoolean 
Default: true, false for dataType 'script' and 'jsonp' 
If set to false, it will force requested pages not to be cached by the browser. 
Setting cache to false also appends a query string parameter, "_=[TIMESTAMP]", to the URL.* 

我的問題:

瀏覽器緩存???

如果我有它返回我的ASHX處理程序:

'<div>lalala</div>' 

將這個被保存在瀏覽器Internet臨時文件嗎?

我不這麼認爲......

那麼它保存在哪裏?

回答

1

jQuery本身不會執行AJAX響應的任何緩存。設置cache: false只能通過向請求的URL添加時間戳來欺騙瀏覽器忽略自己的緩存。

例如,運行:

$.ajax('/ajax_handler.php', { cache: false }); 

將導致/ajax_handler.php?_=1323308900002的請求。

任何後續請求都會在最後包含一個較新的時間戳,這會導致瀏覽器忽略文件的緩存版本並請求新副本。

因此,所有設置cache: true不會是指示jQuery來追加這個緩存清除時間戳(當前默認反正),允許瀏覽器的文件緩存,因爲它通常會*。

總之:發生的任何緩存只是普通的瀏覽器緩存,文件將被存儲,但瀏覽器通常會存儲緩存。

*請注意,「因爲它通常會」可能意味着而不是緩存文件! jQuery沒有做任何事情來確保緩存,取決於瀏覽器。如果頁面發送certain Cache-control or pragma headers,它將不會被緩存。如果jQuery有一個「cacheBust」設置,這與cache相反,這可能會更有意義,因爲jQuery可以這麼做:嘗試防止緩存。

0

我認爲「瀏覽器緩存」意味着,如果瀏覽器(IE比其他更多...)攔截相同的調用兩次,從不調用服務器,只是返回上次返回的服務器。但是,如果清除緩存,它將消失

+0

問題是:'那麼它在哪裏保存它?' –

+0

它依賴於瀏覽器,SO等等我想。在Windows 7下的IE9例如將它們保存在這裏:C:\ Users \ youruser \ AppData \ Roaming \ Microsoft \ Internet Explorer \ UserData –