2012-01-26 53 views
0

我是Flex的新手,想了解如何實現從服務器反覆請求的數據的客戶端緩存。緩存如何在Flex Web應用程序中工作?

讓我們專注於討論緩存的一個簡單示例。選擇一個具有多個屏幕的Flex應用程序,其中每個屏幕繪製一系列線段(x和y數據)。用戶可以在屏幕之間切換,並且每次訪問或重新訪問屏幕時,都會向服務器請求x和y數據的數字數組。當然,服務器上x和y數據的值永遠不會改變。

我想了解哪些技術可用於在瀏覽器或AIR應用程序中實現緩存,以便第一次下載x和y數據時,應用程序在重新訪問時將這些陣列從緩存中拉出這個屏幕在未來。

這是如何完成的?

+0

你的問題不是很具體。沒有緩存策略適用於所有情況。採用策略將取決於您項目的要求,並且必須按項目進行評估。 – RIAstar

+0

我改變了問題更具體。我正在尋找更多的細節(例如代碼)來實現緩存而不是定性策略。如果我想緩存從服務器下載的數組,請問該如何做? – ggkmath

+1

嗨ggk,Flex應用程序是持久的。這意味着應用程序運行後,它將所有對象保存在RAM中,並且只有在垃圾回收器出現並查找orhpaned對象(佔用內存但沒有從應用程序引用它們)時才釋放它們。您可以將數據存儲在ArrayCollection中,並且只要用戶不重新加載頁面/ swf,就可以在最初獲取數據後隨時參考它。 – shaunhusain

回答

0

那麼這取決於你想要緩存什麼。 Swf由瀏覽器緩存。因此,每次瀏覽器指向您的網站時,swfs都不會被下載。 如果您想記住用戶在屏幕上自動填充或自動完成之前輸入的內容,或者只是緩存非敏感數據,則可以使用SharedObject。 然後總是有一種傳統的方式來將您從服務器檢索到的數據存儲在ArrayCollection或內存中的其他對象中,並多次引用它。

+0

通過關注數值數組(例如),我將問題更改爲更具體。您能否擴展「傳統的將您從服務器檢索到的數據存儲在ArrayCollection或其他存儲器中的對象並多次引用它的方式」?也許我的問題太簡單了(我可能沒有更好的經驗)。但是,在這裏如何實現緩存?使用ArrayCollection時會自動完成(幕後)嗎?等等 – ggkmath

相關問題