2011-11-16 56 views
1

我已經詢問關於JavaScript memory and HTML5 LocalStorage limitations on smartphones的問題,但是問題變得更具體一些。與智能手機上的離線緩存和JS內存結合使用時,HTML5 LocalStorage限制

我需要爲脫機使用存儲更多的數據,其中很大一部分是字典。我有一個想法,用JavaScript存儲字典(將數據數據加載到JS變量中),這些數據將被緩存以供脫機使用。離線的業務數據將存儲在LocalStorage中。此外,JS內存將保留一些用於在線使用的緩存,以防止從服務器加載一次以上的相同實體。

所以我有問題,如果使用大離線緩存(比如說4MB)並且在內存中存儲很多,會影響LocalStorage的可用存儲空間嗎?假設由於大量的脫機緩存使用,它可能會被限制爲3MB。有人有這種應用程序的經驗,並且必須處理移動設備上特定瀏覽器的問題嗎?

類似於我的問題Application Cache Manifest + Local Storage Size Limit的答案沒有提供我需要的信息,因爲我理解作者已經單獨測試了脫機緩存限制和LocalStorage限制。

我更擔心JS內存應用程序,我擔心瀏覽器可能會關閉,甚至沒有警告。在一臺設備上進行測試並不意味着應用程序不會在另一臺設備上崩潰,功能也不那麼強大。

所以請寫出,如果你已經測試了移動瀏覽器的限制。只有提供線索才能進一步搜索或描述尚未完成的測試場景的帖子也將受到讚賞。這個話題是相當新的,所以我知道大多數研究只是草案。

更新 我已經更新了我對localStorage的限制提到的問題,與測試上的Opera Mobile 11,我在其中能存儲大量5MB以上限制。

另外根據帖子Increase iPad cache over 50 MB?至少在iPad上可以存儲50MB的數據,希望我能儘快在iPhone上做測試。

回答

0

試驗了一下之後,我發現,歌劇院不限制資源。它要求增加LocalStorage限制,並且此限制不受存儲在應用程序緩存中的文件影響。

Firefox具有可配置的LocalStorage限制,因此理論上可以在那裏存儲大量數據,也不受應用程序緩存的影響。但是,移動Firefox與其桌面系統的兄弟寫得如此糟糕,它在資源管理方面效率低下,以至於在存儲集中使用時它被Android殺死。所以我會阻止人們使用Firefox,至少在Android設備上。

另一方面,Android Browser似乎有2,5 MB的限制,不受應用程序緩存的影響,但是它應該是較低的,根據您有至少5MB的使用嫌疑。然而,這個瀏覽器也無法提供準確的GPS位置(這是AFAIK,功能不是bug - 安全原因),所以對於我來說這個瀏覽器是沒有選擇支持的。

2

在幾乎所有情況下,移動設備對域的所有存儲都有5meg的硬限制。這包括所有本地/會話存儲,索引數據庫,websql,應用程序緩存或其他任何內容。

在這種情況下存儲數據的最佳方式是使用本地存儲或WebSQL作爲字典數據,但不是存儲所有數據,而是存儲80%的用例內容,並提供簡單的方法能夠根據需要加載附加信息。

HTH, 皮特

+1

問題是,在離線模式下無法加載其他信息。任何需要的東西都必須在之前提供。 –