我用rhomobile + jQuery Mobile开发了一个移动应用程序。
当我将它部署在手机“for android”上时,它非常慢。
你能帮我找到原因吗?
答案 0 :(得分:0)
无论使用什么包装器(Rhomobile / Phonegap),jQuery mobile在Android设备上都会有非常糟糕的表现(主要是2.X,但sam与4+版本相关)。
在有此问题的设备(主要是Android)上,您无法做任何事情。这是一个浏览器限制。 Android移动浏览器因转换不良而臭名昭着。
在iOS上,您必须了解一些问题。首先,Webview受到比移动Safari更慢的Javascript的阻碍,因为它们缺乏即时编译功能。它不是Rhodes特有的。在Webview中,相同的Javascript运行速度比在Mobile Safari中运行速度慢,并且没有解决它。
其次,iOS不会自动使用硬件加速进行转换。你可以提示"浏览器通过使用null 3D变换来使用硬件加速,例如translateZ(0)。搜索有关此内容的更多信息。选择正确的元素来实现这一点有一点艺术,因为将它应用于大量元素可能成本很高,并且通常不需要将它应用于整个元素层次结构。
但我最好的建议是不要使用转换,因为它们在各种移动设备上都没有得到很好的处理。 IMO,无论如何,没有过渡是一种非常优越的用户体验。转换主要用于分散用户的注意力,使其免受慢速软件的攻击,具有讽刺意味的是,在此过程中会引入更多延迟。
答案 1 :(得分: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
取消注释并尝试一下。