【问题标题】:Phonegap app running very slow on androidPhonegap 应用程序在 android 上运行非常慢
【发布时间】:2014-03-18 00:35:49
【问题描述】:

我正在使用 phonegap 和 jquery mobile 为 Android 制作应用程序。当我使用 phonegap 构建并在我的 Galaxy S3 上尝试它时,它非常慢,并且点击需要一秒钟才能发生任何事情。我已经尝试将 Android SDK 版本设置为 14,但这并没有做任何事情。这将是一个应用程序,它将从大型服务器中获取大量数据,一次加载 50 个项目。我听说Phonegap对于像这样的大规模事情不是很好,所以有没有办法为此优化Phonegap?还是我只需要使用其他东西,如果是的话,最好使用什么?

【问题讨论】:

  • 在模拟器或设备上使用?
  • 正如我在我的 Galaxy S3 上尝试时在帖子中所说的那样。当我使用纹波模拟器对其进行测试时,性能没有问题。
  • 我建议你在你的框架中使用javascript框架,比如sencha或者backbone.js以获得更好的性能。

标签: android jquery jquery-mobile cordova phonegap-build


【解决方案1】:

对于点击问题,结帐fastclick.js (https://github.com/ftlabs/fastclick)

大多数移动网络视图都有 300 毫秒的点击延迟,以等待双击放大内容。 Fastclick.js 允许你绕过这个。

除了整体性能问题外,您还应该注意使用的 javascript 库的数量。我使用 phonegap 制作了许多应用程序,这些应用程序严重依赖大量外部数据,并发现精简库并使用针对我的确切目的优化的我自己的 JS 效果最好。

我使用handlebars.js 进行模板/视图显示,并且总是使用for 循环而不是jquery each。有研究表明,for 在加载大量数据时比each 快 1000 倍。这是因为each 递归查找每个实例,而for 只是简单地遍历一组数据。

【讨论】:

    【解决方案2】:

    我知道这有点晚了,但这个答案将适用于仍然面临这个问题的人,我一周前遇到了同样的问题,最终发现问题不是因为:

    • 硬件加速
    • SDK 版本
    • 也不是手机硬件规格

    这可能是某些情况下有时的原因,但如果你使用的是 jquery, 那么它可能是因为当android应用程序使用Webview时,它不能很好地处理JQuery animation,这将导致一个很大的性能问题,所以你应该做的是用CSS3动画替换JQuery动画, 为了提供更多帮助,如果您使用 jquery animate() 函数来制作动画,那么您可以在普通 JQuery library 之后添加 JQuery.transit 库,并使用 [transit] 函数而不是 [@987654328 @] 功能。无需修改参数,只需替换函数名即可。

    您可以在此链接中找到该库: jquery.transit

    使用该库后,您会发现性能有了巨大的提升,之后一切都会顺利进行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 2019-04-16
      相关资源
      最近更新 更多