PhoneGap + jQuery Mobile =慢速点击响应时间

时间:2012-12-31 04:14:29

标签: android cordova jquery-mobile

我知道互联网上有很多这些问题,但我已经尝试了所有解决方案(this question的所有答案),但都没有。

当我在PC的浏览器中运行该网站时,一切都很好,但是一旦我在手机上部署,响应时间就非常滞后。

我尝试过使用FastClick,将hoverDelay设置为0,并绑定我自己的事件,但结果是一样的。

使用的是Android 4.1。除了我尝试过的任何帮助,我将不胜感激。

3 个答案:

答案 0 :(得分:24)

要加速JQM,您必须关闭任何过渡。

很糟糕,但JQM转换对于移动设备来说太慢了,即使在iOS上也是如此。我们只需等待几年,直到我怀疑硬件变得更快。尽管JQM团队试图提高1.2的性能。如果没有我的应用程序感觉迟钝,我仍然无法使用转换。

我总是使用这些设置来获得jQuery mobile的最佳性能。

$.mobile.defaultPageTransition   = 'none'
$.mobile.defaultDialogTransition = 'none'
$.mobile.buttonMarkup.hoverDelay = 0

同样,如果您正在编写任何javascript,绑定到任何“点击”事件。在移动设备上点击速度太慢,因为在触发事件之前还有300毫秒的延迟。

由于您使用的是JQM,因此您可以使用他们自己的点击事件vclick(在幕后使用touchstarttouchend事件)。

如果在此之后它仍然非常慢,您可能必须检查点击事件中实际发生的情况 - 也许您的代码没有尽可能优化。

答案 1 :(得分:2)

如果你想为移动应用程序解决这个问题,你最好使用点击事件而不是点击事件。

Tap vs. Click: Death by Ignorance

阅读John Bender

答案 2 :(得分:1)

此代码段为我工作

var ua = navigator.userAgent, 
event = (ua.match(/iPad|Android/i)) ? "touchstart" : "click";

$("button,a").bind(event, function()
{
    $(this).trigger('click');
});