我用 rhomobile + jQuery Mobile 开发了一个移动应用程序。
当我将它部署在“for android”的手机上时,它非常慢。
你能帮我找出原因吗?
我用 rhomobile + jQuery Mobile 开发了一个移动应用程序。
当我将它部署在“for android”的手机上时,它非常慢。
你能帮我找出原因吗?
无论使用什么包装器(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,无论如何,没有过渡是一种非常出色的用户体验。过渡主要用于分散用户对慢速软件的注意力,具有讽刺意味的是,会在流程中引入更多延迟。
您可以非常轻松地在 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
只需取消注释并尝试一下。