我知道互联网上有很多这样的问题,但我已经尝试了每一个解决方案(这个问题的所有答案),但没有一个有效。
当我在我的 PC 浏览器中运行该站点时,一切都很好,但是一旦我在手机上部署,响应时间就非常滞后。
我尝试过使用 FastClick,将 hoverDelay 设置为 0,并绑定我自己的事件,但结果是一样的。
我使用的是安卓 4.1。除了我尝试过的任何帮助之外,我将不胜感激。
我知道互联网上有很多这样的问题,但我已经尝试了每一个解决方案(这个问题的所有答案),但没有一个有效。
当我在我的 PC 浏览器中运行该站点时,一切都很好,但是一旦我在手机上部署,响应时间就非常滞后。
我尝试过使用 FastClick,将 hoverDelay 设置为 0,并绑定我自己的事件,但结果是一样的。
我使用的是安卓 4.1。除了我尝试过的任何帮助之外,我将不胜感激。
要加速 JQM,您必须关闭所有转换。
这很糟糕,但 JQM 转换对于移动设备来说太慢了,即使在 iOS 上也是如此。我们只需要等待几年,直到硬件变得更快,我怀疑。尽管 JQM 团队试图在 1.2 中提高性能,但仍然如此。如果我的应用程序感觉迟缓,我仍然无法使用过渡。
我总是使用这些设置来获得 jQuery mobile 的最佳性能。
$.mobile.defaultPageTransition = 'none'
$.mobile.defaultDialogTransition = 'none'
$.mobile.buttonMarkup.hoverDelay = 0
同样,如果您正在编写任何 javascript,请不要绑定到任何“点击”事件。Click 在移动设备上太慢了,因为它在触发事件之前有额外的 300 毫秒延迟。
由于您使用的是 JQM,因此您可以改用他们自己的点击事件vclick
(在后台使用touchstart
和touchend
事件)。
如果在那之后它仍然对您来说真的很慢,您可能需要检查点击事件中实际发生的情况 - 也许您的代码没有得到优化。
如果您想为移动应用程序解决此问题,最好使用点击事件而不是点击事件。
阅读约翰·本德 (John Bender) 的Tap vs. Click: Death by Ignorance
这个代码片段对我有用
var ua = navigator.userAgent,
event = (ua.match(/iPad|Android/i)) ? "touchstart" : "click";
$("button,a").bind(event, function()
{
$(this).trigger('click');
});