我正在和Cordova合作开发一个移动应用程序。当用户启动应用程序时,我想启动一个非阻塞函数,从服务器加载数据。此函数可占用几秒钟时间。
我在使用leecrossley/cordova插件-后台任务插件。如果我停留在开启函数的页面上,它就能正常工作。如果我更改页面,它将停止该函数。
有什么想法吗?
发布于 2017-07-06 20:58:06
听起来好像你正在经历网络视图节流!Cordova使用Chromium引擎,因此它通常遵循在chrome浏览器中实现的所有性能设置。
您可以在这里阅读更多关于节流问题的文章:WIKDX2EX
解决你的问题的方法是
若要创建作为应用程序核心的主页,请执行以下操作。此主页将始终处于打开状态,因此在加载新页时可以避免脚本停止。
对于应用程序页面,我建议:
为每个应用程序页创建一个单独的.html文件,然后通过iFrame ...the src将这些外部页面加载到主应用程序页面中,可以通过javascript更新。(这种方法的缺点是需要编写额外的javascript来监视和控制主页面iFrames -from中发生的事件。)
或
构建一个非常大的单页应用程序;用div包装所有的应用程序页面。然后创建一个javascrip菜单函数来管理显示的页面和隐藏的页面。(这可能会导致大量的.html页面,但这种方法将允许您同时运行设备可以处理的任意数量的非阻塞脚本。) <--这是我使用了三年多的方法,我还添加了一些iFrames,以便在需要时包含特殊的页面模块。CSS和JavaScript可以从外部文件加载。
我相信大多数cordova开发人员实际上都使用这种单页方法!
https://stackoverflow.com/questions/44957554
复制