我有一个使用 PhoneGap 1.0 和 jQuery Mobile 1.0b2 编写的应用程序,在 iPhone 和 iPad 上运行。
自从我开始使用该框架以来,我一直受到应用程序中“页面”之间切换的性能问题的困扰。按下按钮后,在转换发生之前会有第二次暂停,有时更长。我已经尝试了所有的 webkit 调整,我什至等待两个框架的升级(我从 Phongap 0.95 和 jQuery Mobile Alpha 4 开始),但这个问题尚未解决。
我使用尽可能多的“内置”对象(而不是自定义按钮图像),并且在每个屏幕上使用我自己的 PNG 背景。该应用程序本身仅包含 3 个页面,外加一个用作选项屏幕的页面。
我不想寻找特定的解决方案,而是想知道在使用 PhoneGap 和 jQuery Mobile for iOS 时存在哪些与性能相关的常见问题?这样其他人在处理自己的问题时就可以寻找选项清单
在 Safari 中运行 jQuery Mobile 应用程序与在本机 iOS 中的 UIWebView 中运行它之间的最大区别之一是缺少 Nitro 引擎。它是在 iOS 4.3 中引入的。它使 Safari 中的 JavaScript 处理速度提高了一倍,但他们未能将其构建到本机应用程序或全屏缓存 Web 应用程序中。从 iOS 5 开始,Nitro 引擎被引入到平台的其余部分。
http://arstechnica.com/apple/news/2011/06/ios-5-brings-nitro-speed-to-home-screen-web-apps.ars http://arstechnica.com/apple/news/2011/06/ios-5-brings-nitro-speed-to-home-screen-web-apps.ars
除了 Nitro 引擎之外,围绕 jQuery Mobile 和页面转换还可能存在其他性能问题。平台越慢,侥幸就越明显。有时,它可能表现为页面渲染之间的白色闪烁。其他时候,它可以表现为:过渡到新屏幕 - 闪到上一个屏幕 - 闪到新屏幕。这些侥幸并不一致,要弄清楚它发生的确切原因可能会很困难。更新更快的设备在这方面的问题较少,所以好消息是,随着时间的推移,这个问题将会消失。面向未来,设备很快就会迎头赶上。
话虽如此,我们还要考虑用户单击所需内容的速度有多快的性能。通过禁用页面转换可以最大程度地减少转换异常。这带来了额外的好处,将有效页面性能提高了 500 毫秒。页面转换很漂亮,但事实是它们很慢。性能是一个特点。只需将其包含在自定义脚本中即可关闭转换。
$(document).bind("mobileinit", function(){
$.mobile.defaultPageTransition="none";
});
另外,(这会发送给可能阅读此内容的整个社区)...认真考虑您是否需要真正拥有一个本机应用程序。除非您需要 PhoneGap 来访问摄像头、陀螺仪或 Safari 无法提供的其他硬件支持,否则您始终可以通过使用网络获得更好的性能。我理解人们希望拥有一个“应用程序商店”的愿望,但只有 1% 的应用程序被发现,而且它们的半衰期只有几周。然后,每当操作系统有更新时,您都会面临发布更新的维护噩梦。仅通过网络发布有很多优点。只需一次更新,您就可以让每个平台上的每个人都得到更新。因此,请考虑平台的性能,还要考虑您的版本的性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)