2009-10-23 44 views
0

問候,有沒有辦法確定Flash是否緩存了一個對象?

我在寫網絡閃存應用程序。服務器(獨立的C++應用程序)爲Flash客戶端發送資源來操作和/或顯示圖像和聲音。我假設瀏覽器將這些資源存儲在緩存中。由於資源可能很大,每次客戶端重新啓動應用程序時,我都不希望從服務器重新發送它們。我不能使用LSO(flash cookies),因爲如果緩存被瀏覽器或用戶獨立清除,那麼LSO就不會更新。

因此對於閃存大師.. 1)有沒有辦法檢測一個項目是否已被緩存,例如查詢瀏覽器緩存的crc或什麼?也許加載屏幕外的對象,並(以某種方式)檢測它是否顯示? - 或 - 2)有什麼辦法可以避免使用普通的瀏覽器緩存並在某種較大的LSO中自行緩存?

感謝您的幫助。

回答

0

不,你不能。但是如果你有資源的預加載器,那麼用戶看到的東西正在加載它應該沒問題。如果資源已經在緩存中,那麼他們將不會看到預加載器,應用程序就會出現。並且對圖像/聲音的請求不會被髮送到服務器,所以在那裏沒有流量。如果他們不在緩存中,他們將會看到預加載器,所以你就是在那裏開始的。我看不出爲什麼你試圖在你的情況下以任何方式操縱緩存。

+0

嗯,這裏的問題是,資源沒有存儲在SWF或任何本地我可以預加載他們 - 他們直接從服務器(例如,在第一次運行),然後(我假設)得到填充在瀏覽器緩存中。我沒有看到我能夠檢測到客戶端是否真的有資源,因此它決定是否必須從服務器發出請求。 – flashnewb 2009-10-23 09:04:31

+0

是的。你可以顯示一個預加載器來下載資源。如果你用flash給出的任何加載方法(urlloader,loader,無論什麼)加載圖像,你有進度和加載完成的事件,依此類推。您知道您需要下載多少資產,將進度條劃分爲該數字,並獲取第一個資源。當完成時,增加進度條,並加載下一個等等。 – TheBrain 2009-10-23 09:26:47

+0

正如我的s/n所說,我是一個flash新手,請耐心等待我,因爲我還沒有得到它。我們來試試一個例子。假設您有一臺非常基本的服務器,它只是通過套接字將圖像發送到Flash客戶端。客戶端顯示他們進來的圖像。我想要做的是讓服務器首先發送圖像標識符(名稱或校驗和或其他),然後客戶端可以用「我擁有它」或「發送」。客戶如何確定這一點? – flashnewb 2009-10-23 09:32:22

相關問題