修改cordova插件加载行为,以加快加载时间

我正在寻找一种方法来加快cordova的插件加载,所以我可以最早显示我的用户界面(用户界面没有第一次启动时对所有插件的严格需求)。

我到目前为止所尝试的:

  • 根据文档,我已经尝试添加: <param name="onload" value="false" /> ; 为我加载的每个function。 没有帮助。 ( 关于SO的相关查询 )

  • 已将应用程序初始化代码从deviceReady移出(初始化不需要Cordova特定位)。

我如何得出结论,插件是一个瓶颈? 如下:

  • 我卸载了应用程序所需的所有插件(其中23个!),加载时间被削减2.5到3秒。 所以我相信这是一个瓶颈。

  • 另外,我删除了所有JS和CSS,包括cordova.js,并加载了一个空白的HTML页面。 与插件和无插件。 差别是巨大的。

总的来说,这个问题是,直到所有的插件本地代码没有运行,WebView本身并没有出现。 更多的插件,更多的时间是可见的。 有什么办法可以让Cordova立即加载WebView,并让JS加载,同时在后台初始化插件,并在必要时触发deviceReady ? 我可以在稍后的时间做cordova具体的事情。

有关:

  1. 在API加载之前在Cordova中显示webView
  2. phonegap插件onload = false不起作用

我同情你的目标,但你不能从萝卜中得到牛奶。

有了使用onload=false的想法, <feature (...)>已被弃用。 按照底部的链接,并阅读#12。

另一方面,提问人员显然不知道这是不可能的。

所有Cordova / Phonegap平台的主UI查看器是一个名为WebView的库(在Android中,在其他平台上类似, 请参阅 )所有这些库都有一个共同点,不加载,使用Javascript或其他工具一个完整的网页浏览器。 因此,必须启用Javascript(由Cordova)并加载(由OS)。 直到HTML文档的所有其他部分都被识别(但可能没有加载),才会发生这种情况。 这包括CSS,字体,图像和图标(如果需要)。

但是,对于后面的项目,例如CSS,时间可以由CSS来优化。 很多时候,开发人员不会做这种优化,因为需要提供一个里程碑(而且他们往往永远不会去修复它)。

回到插件,确实需要一些时间来加载插件,但是为什么插件需要很长时间呢? 加载后的插件不得不做一些*初始化,但需要多长时间取决于插件。 例如,地理定位(GPS)插件在可用的读数可用之前可能需要长达10秒。

  • 加载时间试图调整加载时间将很难certificate是有用的,因为不pipe插件,插件需要加载它所需要的。
  • 初始化时间试图调整插件的内部是一个讨论你应该与作者。

此外,我可以推测为什么一些插件花了这么长时间,但我不知道你在使用什么, 所以这将是一个徒劳的努力。

最后,可能有一些方法可以减less发射用户准备之间的时间,但我没有听说过,也没有看到。 这包括我对cordova,Phonegap,Android和苹果的iOS文档的阅读。

在您开发的过程中,这个文档可能会有用
由Cordova / Phonegap开发的开发人员的顶级错误