0

我正在使用 Cordova 构建一个应用程序,并且在设备上运行时遇到了许多性能问题。该应用程序是使用 Backbone 开发的,它在浏览器中的性能非常好。

我想解决的主要问题是在不同页面之间进行更改,并且当应用程序最初加载时,由于页面正在绘制/重绘,似乎存在丑陋的“平铺效果”。

我用来在不同主干视图之间更改的代码如下:

$('#app-view').empty();
$('#app-view').html($(view.el));

有没有更好的方法来更改在 Cordova webview 中表现更好的所有内容?

4

1 回答 1

0

phonegap 中的性能问题实际上源于 webview 必须呈现的内容量。从那里它分为两类:ios和android。

对于你,我有两个建议:

建议#1:

iOS webview 通常会执行 android 视图。我已经开发了几个带有一些基本 HTML 驱动动画等的 phonegap 应用程序。

对于 android,对于 android 设备来说最重要的是在代码级别或应用程序 manifest.xml 中禁用硬件加速。

我知道这听起来很有趣,但实际上它的作用是让 webview 使用更多的硬件加速。

对我来说,这最终看起来像这样:

<application android:debuggable="true" android:hardwareAccelerated="false" android:icon="@drawable/icon" android:label="@string/app_name">

建议2:

而不是 $('#app-view').empty(); $('#app-view').html($(view.el));

是否有可能做这样的事情:

$('#app-view1').css('display', 'none'); 或 $('#app-view1').remove();

然后通过简单地显示第二组内容进行跟进,而不是第一次完全呈现/下载 IE。$('#app-view1').css('display', 'block');

第二个建议的核心是简单地切换两个内容的可见性,而不是完全重置所有 html 内容。您甚至可以将内容设置为隐藏的 div,然后切换可见性。

我相信,当与您的硬件加速设置相结合时,更改应该会产生可衡量的差异。

越早将 html 加载到隐藏的 div 中越好,然后简单地使其可见。当它加载到隐藏的 div 中时,它会给 html 解析器时间来解析、下载资源等。

于 2014-07-10T18:08:45.657 回答