我正在尝试运行一段javascript,它不断轮询服务器以进行更新。从最终用户的角度来看,以最小的应用程序性能影响实现此工作的最佳方法是什么。
我尝试在一个单独的iframe中生成它,但结果表现非常糟糕。
我目前正在开发android,所以如果解决方案涉及编写一个phonegap插件来轮询服务器而不是现在应该没问题的javascript。轮询服务器后,我需要更新本地存储中的数据。
答案 0 :(得分:2)
如果您计划仅在应用程序正在使用时进行轮询,setInterval()
的效果相当不错。我的应用程序使用的是jQuery Mobile,默认情况下只更新DOM而不是重新加载整个页面,这样我的setInterval()
一旦启动就会保持运行。
Android已经支持Background services,您可以将其用于长时间连续运行的任务。
我使用上述组合的一种解决方案:
setInterval()
定期检查更新。这样我的主要逻辑仍然在Javascript方面,我不需要在Javascript和native中再次编写相同的逻辑。
如果更新不是很频繁,那么您应该考虑使用PushNotification
答案 1 :(得分:1)
我已经在IOS中实现了这一点。 phonegap的问题在于您无法创建运行javascript的计时器任务,因为如果您的.html页面更改,任务将被终止。
除非你只有一个.html而且你正在动态改变身体部位。如果是这种情况,那么在javascript中查找setInterval。
如果不是这种情况那么在javascript上实现某些东西不是解决方案,在IOS中我实现了一个用于运行异步Web服务调用的自定义插件。你可以做类似的事情,编写一个运行AsyncTask doInBackground()的插件,然后在javascript中回发结果。有很多关于如何在phonegap中创建自定义插件的教程。希望它有所帮助