【问题标题】:Modify Cordova Plugin loading behaviour to speed up load time修改 Cordova 插件加载行为以加快加载时间
【发布时间】:2015-10-24 10:46:06
【问题描述】:

我正在寻找一种方法来加快 Cordova 上的插件加载,以便我可以尽早显示我的 UI(UI 在首次启动时并不严格需要所有插件)。

到目前为止我所尝试的:

  • 根据文档,我尝试添加:<param name="onload" value="false" />;对于我正在加载的每个功能。没有帮助。 (Related query on SO)

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

我是如何得出插件是瓶颈的结论的?如下:

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

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

总体问题是,直到插件的所有原生代码都没有运行,WebView 本身才出现。插件越多,可见的时间就越多。有什么方法可以让 Cordova 立即加载 WebView 并让 JS 在后台初始化插件并在需要时触发deviceReady时加载?我可以稍后再做 Cordova 特定的事情。

相关:

  1. Showing webView in Cordova before API has loaded
  2. phonegap plugin onload=false has no effect

【问题讨论】:

  • 你有什么运气吗?我正在考虑如何实现类似的目标。
  • 不。好久没用Cordova了!对不起。 :)

标签: javascript android ios performance cordova


【解决方案1】:

我同情你的目标,但你无法从turnip 获得牛奶。

考虑到使用onload=false<feature (...)> 已被弃用。点击底部的链接,阅读#12。

关于另一个问题,很明显提出问题的人不知道这是不可能的。

所有 Cordova/Phonegap 平台的主要 UI 查看器是一个名为 WebView 的库(在 Android 中,在其他平台上类似,see)所有这些库都有一个共同点,即不加载、Javascript 或其他使其成为成熟的网络浏览器的工具。因此,必须启用 Javascript(由 Cordova)并加载(由操作系统)。在 HTML 文档的所有其他部分都被识别(但可能没有加载)之前,这不会发生;这包括 CSS、字体、图像和图标(如果需要)。

但是,对于后面的项目,例如 CSS,可以弥补时间 - 如果 CSS 已优化。很多时候,开发人员没有进行这种优化,因为需要交付一个里程碑(而且他们通常永远不会回来修复它)。

回到插件,加载插件确实需要一些时间,但通常不清楚为什么插件需要这么长时间。加载后的插件确实必须做*一些*初始化,但需要多长时间取决于插件。例如,地理定位 (GPS) 插件可能需要长达 10 秒的时间才能获得可用的读数。

  • 加载时间 尝试调整加载时间几乎没有用处,因为无论插件如何,插件都需要加载它需要的内容。
  • 初始化时间 尝试调整插件的内部结构是您应该与作者讨论的问题。

另外,我可以推测为什么某些插件需要这么长时间,但我不知道您使用的是哪个;所以这是徒劳的。

最后,*也许* 有一些方法可以缩短 启动user-ready 之间的时间,但我没有听说过,也没有见过。这包括我对 Cordova、Phonegap、Android 和 Apple 的 iOS 文档的阅读。

本文档在您开发时可能会很有用
Top Mistakes by Developers new to Cordova/Phonegap

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
相关资源
最近更新 更多