2011-01-06 29 views
1

我目前正在處理一個需要多次請求url的項目。研究了HTTP代理(Charles)之後,AIR似乎會緩存第一個響應,然後爲每個後續請求返回相同的響應。AIR緩存控件如何工作,緩存內容的最大年齡是多少?

有沒有人知道如何知道響應是否已被緩存,而不是將URLRequest設置爲useCache,但這並不表示響應是否爲緩存響應。 digest也沒有在URLRequest上設置,儘管它確實提到這僅適用於swz,所以它如何知道內容是否是當前內容?使用responseHeaders響應找出如何長時間保持高速緩存即

  • 緩存控制:最大年齡= 900

也沒有人知道如何刷新/清除緩存或者是我們GC的心血來潮,在這種情況下,它是如何知道是將它留在緩存還是現在?

這對我有意義,但我仍然想知道如何管理這個緩存。

更多:我已經測試了一個設置,其中創建了並行URLLoaders(10),它們打開相同的URL以查看該實例中發生的情況。看起來,每個並行請求都會進行,直到給出成功的響應,然後緩存所有後續調用。在成功請求之前發出的呼叫完成。它看起來像已經在處理的項目不使用緩存並返回正確的數據。

其他 AIR運行時甚至不發送「If-Modified-Since」標頭,因此緩存甚至不遵守HTTP協議。所以看起來好像Adobe已經實現了它自己的緩存版本,甚至不使用HTTP/1.1頭部字段定義。完善。

感謝您的任何幫助。 Simon

回答

0

從URLRequest類的文檔看來,它似乎使用了操作系統的HTTP緩存。在Windows 7操作系統上,它似乎使用IE的緩存。

您可以使用像Fiddler這樣的HTTP監視器工具,並對其進行驗證。

第一個請求是200,後續請求是304.清除IE緩存後。並再次運行該應用程序,您可以看到它導致HTTP 200狀態。

相關問題