我正在使用Cordova构建一个应用程序,在该设备上运行时遇到了一些性能问题。这个应用程序是使用Backbone开发的,它在浏览器中表现得非常好。
我想要解决的主要问题是在不同的页面之间进行更改,当应用程序最初加载时,在页面绘制/重绘时似乎会出现丑陋的“平铺效果”。
我用来在不同的backbone视图之间切换的代码如下:
$('#app-view').empty();
$('#app-view').html($(view.el));有没有更好的方法来改变在Cordova webview中表现更好的所有内容?
发布于 2014-07-11 02:08:46
phonegap中的性能问题实际上源于webview必须呈现的内容数量。从那时起,它分为两类: ios和android。
对于你,我有两个建议:
建议#1:
iOS webview的表现通常优于android view。我已经开发了几个phonegap应用程序,带有一些基本的HTML驱动的动画等等。
对于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解析器解析、下载资源等的时间。
https://stackoverflow.com/questions/17571169
复制相似问题