我開發了一個擴展,在瀏覽會話期間創建了大量數據。想一想,總的HTTP流量(圖片,HTML等)的2到3倍。FireFox擴展中的臨時存儲
目前我只是把所有這些都放在一個Javascript變量中,但是如果擴展會得到任何嚴重的用法,這顯然是不可行的。
所以,問題是,我應該在哪裏存儲這些數據?它很少被訪問,但當它是所有的時候。此外,如果數據不是在當前會話之後仍然存在,那麼會很好;陳舊的數據在這種情況下是無用的,我寧願不要無謂地填滿磁盤。
*對於在瀏覽器中運行的東西,在Javascript
我開發了一個擴展,在瀏覽會話期間創建了大量數據。想一想,總的HTTP流量(圖片,HTML等)的2到3倍。FireFox擴展中的臨時存儲
目前我只是把所有這些都放在一個Javascript變量中,但是如果擴展會得到任何嚴重的用法,這顯然是不可行的。
所以,問題是,我應該在哪裏存儲這些數據?它很少被訪問,但當它是所有的時候。此外,如果數據不是在當前會話之後仍然存在,那麼會很好;陳舊的數據在這種情況下是無用的,我寧願不要無謂地填滿磁盤。
*對於在瀏覽器中運行的東西,在Javascript
一個相當標準的解決方案是使用本地文件作爲存儲。作爲Firefox擴展運行的代碼具有足夠的權限來讀取和寫入本地文件。 MDC File I/O code snippets page是理解和實施擴展中的一個非常好的起點。它還向您展示瞭如何find your extension's directory並說明了creating temporary files的機制。
這些方法應該給你你需要的工具來做你想做的事情。讓我們知道您是否需要進一步的問題。
你可能想看看自帶的火狐3.5的數據庫。
在磁盤上。無論如何,如果它確實是流量的3倍,您將無法將其全部保留在內存中。您可以隨時在關閉時和/或下次會議開始時刪除不再需要的數據。
存儲數據的具體方式取決於您具體的要求 - 您需要存儲什麼,數據訪問中的模式是什麼。如果像你說的那樣,你只需要保存收到的單個文件,我會把它們存儲爲文件。