17

我知道互联网上有很多这样的问题,但我已经尝试了每一个解决方案(这个问题的所有答案),但没有一个有效。

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

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

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

4

3 回答 3

24

要加速 JQM,您必须关闭所有转换。

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

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

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

同样,如果您正在编写任何 javascript,请不要绑定到任何“点击”事件。Click 在移动设备上太慢了,因为它在触发事件之前有额外的 300 毫秒延迟。

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

如果在那之后它仍然对您来说真的很慢,您可能需要检查点击事件中实际发生的情况 - 也许您的代码没有得到优化。

于 2012-12-31T04:23:35.220 回答
2

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

阅读约翰·本德 (John Bender) 的Tap vs. Click: Death by Ignorance

于 2013-08-15T20:21:12.280 回答
1

这个代码片段对我有用

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

$("button,a").bind(event, function()
{
    $(this).trigger('click');
});
于 2013-11-04T11:54:13.453 回答