0

我用 rhomobile + jQuery Mobile 开发了一个移动应用程序。

当我将它部署在“for android”的手机上时,它非常慢。

你能帮我找出原因吗?

4

2 回答 2

0

无论使用什么包装器(Rhomobile/Phonegap),jQuery mobile 在 android 设备上都会有极差的性能(主要是 2.X,但 sam 与 4+ 版本有关)。

在有此问题的设备(主要是 Android)上,您无能为力。这是浏览器的限制。Android 移动浏览器因转换效果不佳而臭名昭著。

在 iOS 上,您必须注意几个问题。首先,Webviews 受到比 Mobile Safari 慢的 Javascript 的阻碍,因为它们缺乏即时编译功能。它不是罗德特定的。相同的 Javascript 在 Webview 中的运行速度将比在 Mobile Safari 本身中运行得慢,并且无法绕过它。

其次,iOS 不会自动使用硬件加速进行过渡。您可以通过使用空 3D 变换(如 translateZ(0))“提示”浏览器使用硬件加速。搜索有关此的更多信息。选择正确的元素来做这件事有点艺术,因为将其应用于大量元素可能会很昂贵,而且通常没有必要将其应用于整个元素层次结构。

不过,我最好的建议是不要使用过渡,因为它们在各种移动设备上还没有得到很好的处理。IMO,无论如何,没有过渡是一种非常出色的用户体验。过渡主要用于分散用户对慢速软件的注意力,具有讽刺意味的是,会在流程中引入更多延迟。

于 2013-01-04T21:08:35.153 回答
0

您可以非常轻松地在 Rhodes 应用程序中停用过渡以试一试。在 Rhodes 应用程序的 app 文件夹内的 layout.erb 文件中,您可以找到:

// Uncomment these options in case of performance problem in pages transition
//$.mobile.defaultPageTransition = 'none';
//$.mobile.defaultDialogTransition = 'none';
//$.mobile.ajaxEnabled = false;
//$.mobile.pushStateEnabled = false;
//$.mobile.loadingMessageDelay = 50; // in ms

只需取消注释并尝试一下。

于 2013-01-05T09:53:24.957 回答