[英]offline HTML5 or native SDK for cross-platform app development or JQUERY mobile
[英]Opera Mobile, offline web app development, and memory
我正在開發一個數據收集應用程序,以便在運行Windows Mobile 6的HP iPAQ 211上使用。我正在使用Opera Mobile 9.7和Google Gears作為脫機網絡應用程序(隨您所知)進行操作。 由於它是一個離線應用程序,因此它的大部分行為都非常依賴Javascript。 我正在使用Gears的LocalServer,Database和Geolocation組件,以及JQuery核心和幾個用於表單驗證和其他可用性調整的插件(沒有jQuery UI)。 我一直試圖對自己的編程風格保持保守,並盡可能釋放或關閉資源,但是Opera大約在使用10-20分鍾后就死了。 Javascript引擎停止響應,僅分頁加載一半,最終完全停止加載。 我猜這是資源問題。
退出並重新啟動瀏覽器可以解決問題,但這只是暫時的。 iPAQ隨附128 MB的RAM,復位后立即可使用其中的85-87 MB。 僅運行Opera時,仍然有大約50 MB的閑置空間。
因此,我的問題是:
雜亂無章的技術集合根本無法奏效,但是它需要更快,更穩定。 我很感激任何建議。
這是一個持久的JavaScript應用程序,還是您會不時刷新整個頁面?
在第一種情況下,您可能會發生內存泄漏。 您應該嘗試將其隔離。 這可能是您的錯,或是來自您使用的其中一個庫。 當您知道時,您可以決定要做什么。 或者,您可以不時地刷新頁面。
在后一種情況下,您應該刪除項目。 如果瀏覽器只是隨着時間的推移而停止工作,盡管您給了它明顯的釋放內存的機會,那么它就是廢話。
聽起來確實有些東西正在泄漏內存,據我所知,恐怕Opera Mobile / Gears組合還沒有經過大量測試。 因此,我最初的猜測是內存泄漏發生在Opera / Gears交互中。
(您可能知道,由於Opera核心是跨平台的,因此Opera的核心JS / DOM支持應該相對穩定,並且9.7中的“ Futhark” ES引擎已經使用了幾年,因此經過了很好的測試和穩定。)
我不知道這是多么實用的建議-但是您的方案是否有可能最大程度地減少Gears的使用或嘗試隔離會引起問題的Gears交互的特定功能? 例如,如果您經常使用GeoLocation來寫一個小頁面,它會顯示類似的症狀嗎?
到目前為止,您可能已經編寫了很多代碼:-/
實際上,我並不是在Opera Mobile 9.7的Widget端完全支持的功能之上,但是在Widget中可能有一些功能(例如fileIO),您可以使用這些功能來替換Gears功能並進行離線操作。
對於以后可能遇到此問題並尋求相同問題答案的任何人,只需為自己購買iPhone / iPod Touch並在Mobile Safari中進行開發即可。 這就是我最終要做的事情(使用persistence.js作為SQLite DB的ORM)。 至少暫時來說,這確實是一個優越的環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.