2011-04-05 122 views
1

在我的應用程序中,我使用Loader實例進行了多次調用以將圖像預加載到後臺的brower緩存中,並忽略完整的事件。我不會將結果存儲在應用程序中,而是希望將它們存儲在瀏覽器緩存中。圖像具有很長的Expires標題日期。如何在Flex中加載緩存的預加載圖像

當我想使用特定圖像時,我再次使用一個Loader實例並調用相同的URL並偵聽完整的事件以將該文件加載到圖像。

問題是,當我重新請求「緩存」圖像的URL時,它會發出一個帶有響應200狀態的http請求,我認爲這意味着它正在擊中服務器。

如何確保緩存圖像的請求永遠不會從Flex中訪問服務器?

一般來說,我發現任何請求緩存的圖像(與長期過期標題)的url是向服務器發出另一個請求,或者至少這是我在Firebug中的解釋。

任何想法如何做到這一點?或者我誤解了螢火蟲告訴我的是什麼?

謝謝。

回答

0

所以,是的,我誤解了螢火蟲。事實證明,螢火蟲記錄的url請求,它看起來像一個正常的請求。但是,如果您使用類似wireshark的網絡監視器來監視網絡,則您將注意到緩存映像的URL沒有傳出數據包。 Flex會加載緩存的圖像。爲了在圖像緩存中安全起見,我添加了一個如下的Cache-Control頭(儘管我認爲expires已經足夠了,在發佈的時候已經有一年了)。

緩存控制:最大年齡= 31536000,必重新驗證

到期日:星期四,2011年12月1日16:00:00 GMT

所以,如果你正確地設置緩存頭(注意,如果該日期不是expires頭中的有效日期,它不起作用),當您將url調用到緩存映像時,flex將從緩存中加載。