我正在使用phonegap和jquery mobile为Android制作应用。当我使用phonegap构建并在我的Galaxy S3上试用它时,它非常慢并且点击会花费一秒钟来完成任何事情。我已经尝试将Android SDK版本设置为14但是没有做任何事情。这将是一个应用程序,它将从大型服务器中获取大量数据,同时加载50个项目。我大声朗读,Phonegap对于像这样的大型事情来说并不是很好,所以有什么方法可以优化Phonegap吗?或者我只需要使用其他东西,如果是这样,最好用的是什么?
答案 0 :(得分:2)
对于点击问题,请结帐fastclick.js
(https://github.com/ftlabs/fastclick)
大多数移动网络浏览都有300毫秒的点击延迟,等待双击放大内容。 Fastclick.js
允许您绕过此。
此外,对于整体性能问题,您应该注意所使用的javascript库的数量。我已经使用了很多依赖大量外部数据的phonegap进行了大量应用,并发现减少库并使用我自己的JS为我的确切目的进行了优化,效果最好。
我使用handlebars.js进行模板化/视图显示,并始终使用for
循环而不是jquery each
。有些研究表明,for
在加载大量数据时比each
快1000倍。这是因为each
递归地找到每个实例,其中for
只是遍历一组数据。
答案 1 :(得分:2)
我知道这有点晚了但是这个答案将针对那些仍然面临这个问题的人,我一周前遇到了同样的问题,最后发现问题不是因为:
这可能是某些情况下的原因,但是如果你使用jquery,
那么它很可能是因为当Android应用程序使用Webview
时,它不能很好地处理JQuery animation
,这将导致一个很大的性能问题,所以你应该做的是用CSS3动画替换JQuery动画,
为了提供更多帮助,如果你使用jquery animate()
函数来制作动画,那么你可以在正常JQuery.transit
之后添加JQuery library
库,并使用[transit
]函数而不是[animate
]函数。无需修改参数,只需替换函数名称即可。
您可以在此链接中找到该库: jquery.transit
使用该库后,你会注意到一个巨大的性能跳跃,之后一切都会顺利进行。