2017-07-06 71 views
0

我正在与科尔多瓦一起开发移动应用程序。当用户启动应用程序时,我想启动一个非阻塞函数来从服务器加载数据。此功能可能需要几秒钟的时间。如何让JavaScript任务在科尔多瓦的多个屏幕上运行

我使用的是leecrossley/cordova-plugin-background-task插件。如果我留在启动该功能的页面上,它工作正常。如果我改变页面,它会停止该功能。

有什么想法?

  • 乔恩

回答

0

听起来好像你正在经历的网络视图节流! Cordova使用Chromium网络引擎,因此通常会遵循Chrome浏览器中实现的所有性能设置。

你可以阅读一些在此处详细了解节流问题: https://thenextweb.com/apps/2017/01/26/chrome-throttle-background-tabs-google/#.tnw_WIKDX2EX

解决你的问题是

创建一个主页用作您的应用程序的核心。这个主页面将一直处于打开状态,从而在加载新页面时保存脚本停止。

对于应用程序的网页,我建议之一:

创建每个应用程序页面创建一个单独的.html文件,然后通过iframe加载这些外部网页到您的主应用程序页面...的将src iFrame可以通过javascript进行更新。 (这样做的缺点的方法是,你需要编写额外的JavaScript来监视和控制您的iFrame内所发生的事件 - 从主界面。)

建立一个非常大单页面应用程序;将所有应用程序页面封装在div中,然后创建一个javascrip菜单功能,管理显示的页面和隐藏的页面。 (这可能导致一个巨大的.html页面,但这种方法将允许您运行任何数量的非阻塞脚本,设备可以一次处理)。< - 这是我用了三年多的方法,我还需要时添加一些iFrames以包含特殊页面模块。 CSS和JavaScript可以从外部文件加载。

我相信大多数科尔多瓦开发者实际上都使用这种单页方法!

+0

太好了,非常感谢您的详细解答!我会研究它,看看这些是否可以为我工作。我有一个现有的应用程序,非常可观。 –

+0

没问题。请让我知道它是否有帮助! –