修改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具体的事情。
有关:
- 在API加载之前在Cordova中显示webView
- 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开发的开发人员的顶级错误