我想運行一個JavaScript代碼片斷,不斷輪詢服務器的更新。從最終用戶的角度來看,實現這一目標的最佳方式是對應用程序性能的影響最小。在手機上實現長時間運行的後臺任務
我嘗試在單獨的iframe中產卵,但結果表現非常糟糕。
我目前正在研究android,所以如果解決方案涉及到編寫一個phonegap插件來輪詢服務器而不是javascript,那麼現在應該沒問題。在輪詢服務器之後,我需要更新本地存儲中的數據。
我想運行一個JavaScript代碼片斷,不斷輪詢服務器的更新。從最終用戶的角度來看,實現這一目標的最佳方式是對應用程序性能的影響最小。在手機上實現長時間運行的後臺任務
我嘗試在單獨的iframe中產卵,但結果表現非常糟糕。
我目前正在研究android,所以如果解決方案涉及到編寫一個phonegap插件來輪詢服務器而不是javascript,那麼現在應該沒問題。在輪詢服務器之後,我需要更新本地存儲中的數據。
我已經在IOS中實現了這一點。 phonegap的問題在於你無法創建運行JavaScript的計時器任務,因爲如果你的.html頁面發生變化,任務將被終止。
除非你只有一個.html,而且你正在動態改變身體部分。如果是這種情況,請在javascript中查找setInterval。
如果情況並非如此,那麼在JavaScript上實現一些東西並不是解決方案,在IOS中我已經實現了一個用於運行異步Web服務調用的定製插件。你可以做類似的事情,編寫一個運行AsyncTask doInBackground()的插件,然後在javascript中回傳結果。有很多關於如何在phonegap中創建自定義插件的教程。希望它有幫助
如果您打算只在應用程序正在使用時進行輪詢,setInterval()
運行得很好。我的應用程序使用jQuery Mobile,默認情況下只更新DOM,而不是重新加載整個頁面,這樣我的setInterval()
一旦開始運行就會一直運行。
Android已經有Background services的支持,您可以使用它進行長時間連續運行的任務。我已用上述組合使用
一種解決方案:
的應用程序正在運行時setInterval()
定期檢查更新。這樣我的主要邏輯仍然是在Javascript方面,我不需要在Javascript和本地再次編寫相同的邏輯。
如果更新不是很頻繁,那麼你應該考慮使用PushNotification
確認?討論? – 10s