IOS 9与cordova 4.2的加载问题

Posted

技术标签:

【中文标题】IOS 9与cordova 4.2的加载问题【英文标题】:Loading issue with IOS 9 with cordova 4.2 【发布时间】:2015-10-13 05:53:59 【问题描述】:

我在使用 Xcode 7.0.1 时遇到了 cordova 4.2 的问题,当我在 ios9 上运行我的应用程序时,加载 JS 文件大约需要 25 秒,这与 android 相比非常糟糕。 我试图通过放置标志来检测问题,加载卡在获取车把(因为我使用的是 Ember js)。 我试图在没有改善的情况下缩小 hbs。

function onDeviceReady()  
Helpers.getScript('app/app.js');
Helpers.getScript('app/helpers.js');
Helpers.getScript('app/init.js');
Helpers.getScript('app/router.js');
 

提前致谢

【问题讨论】:

你能在列出/加载 JS 文件的地方发布 html 元素吗? 感谢您的回复。我在 deviceReady() 上加载这些文件,如下所示: function onDeviceReady() Helpers.getScript('app/app.js'); Helpers.getScript('app/helpers.js'); Helpers.getScript('app/init.js'); Helpers.getScript('app/router.js'); 没有。请把代码放在原帖中。我看不懂。 嗯?!我很困惑。在这些脚本中,是否有在您调用它时触发的实时代码,还是只是一堆函数? 这里我使用 AJAX 调用加载所有模板、路由、控制器、组件。 【参考方案1】:

好的。如果您所做的只是加载文件,则无需延迟加载这些文件。如果您在这些文件中有一些活动代码,您唯一希望延迟加载文件*是*

需要明确的是,有些库会在加载后立即加载并激活。这些库会以某种方式设置变量或访问系统。这些类型的库需要在deviceready 事件之后加载。否则,您可以尽快加载库,甚至在deviceready 事件之前。

在您的应用程序上,我无法说明为什么它会延迟启动。你说 20+ 秒,我只能认为可能是库加载延迟。

注意:并非所有应用的构建方式都相同。这意味着在 Android 上,有系统自带的库,也有 Cordova 添加的库。可能,(可能是)您正在 iOS 系统上加载更大的 APP,这可能是延迟。

无论如何,让我知道您尝试了什么,什么有效,什么无效。

【讨论】:

感谢您的回复。实际上我尝试在一些把手(.hb 文件)中检测问题并对其进行评论。然后我尝试再次运行该应用程序,花了 4 秒。这些文件的大小很大,但与其他需要 20 毫秒的文件相比,它应该需要 2 秒或 1 秒 pre .hbs。

以上是关于IOS 9与cordova 4.2的加载问题的主要内容,如果未能解决你的问题,请参考以下文章

ios cordova 原生与js通讯原理

WKWebView针对于Cordova的IOS平台性能提升

使用 cordova-ios 5 更新 Cordova 9

Phonegap (Cordova 2.9.0) iOS 上的地理定位

如何在 IOS 7 的 cordova 2.9.0 中删除状态栏?

Cordova 5.3.3 和安装的 Cordova iOS 3.9.1 在 iOS9 中无法访问互联网