我知道互联网上有很多这些问题,但我已经尝试了所有的解决方案(所有this question的答案),而且都没有工作。PhoneGap + jQuery Mobile =慢点击响应时间
当我在我的PC浏览器中运行该网站时,一切都很好,但只要我在电话上部署,响应时间非常缓慢。
我试过使用FastClick,将hoverDelay设置为0,并绑定我自己的事件,但结果是一样的。
正在使用Android 4.1。希望除了我所尝试过的任何帮助。
我知道互联网上有很多这些问题,但我已经尝试了所有的解决方案(所有this question的答案),而且都没有工作。PhoneGap + jQuery Mobile =慢点击响应时间
当我在我的PC浏览器中运行该网站时,一切都很好,但只要我在电话上部署,响应时间非常缓慢。
我试过使用FastClick,将hoverDelay设置为0,并绑定我自己的事件,但结果是一样的。
正在使用Android 4.1。希望除了我所尝试过的任何帮助。
要加快JQM,您必须关闭任何转换。
它很糟糕,但JQM转换对移动设备来说太慢了,即使在iOS上也是如此。我们只能等待几年,直到硬件变得更快,我怀疑。尽管JQM团队试图在1.2中提高性能,如果没有我的应用程序感觉呆滞,我仍然无法使用转换。
我总是使用这些设置来获得jQuery手机的最佳性能。
$.mobile.defaultPageTransition = 'none'
$.mobile.defaultDialogTransition = 'none'
$.mobile.buttonMarkup.hoverDelay = 0
同样,如果你正在写任何JavaScript,不绑定到任何“点击”事件。移动设备上的点击速度太慢,因为它在事件触发之前有300毫秒的延迟。
由于您使用的是JQM,因此您可以使用自己的单击事件vclick
代替(该引擎正在使用touchstart
和touchend
事件)。
如果在此之后它仍然非常慢,您可能需要检查点击事件中实际发生的情况 - 可能您的代码没有尽可能优化。
转换与实际启动之前发生的事情有什么关系?由于转换本身在我的手机上完美无缺地工作,所以在转换开始之前的延迟*使我感到不安。除此之外,我还没有任何JS,除了一个自定义的加载屏幕,一旦加载Cordova和JQM就会执行'changePage',这就是它。我会尝试禁用转换并回来反馈。谢谢! –
不,很抱歉,没有任何变化,仍然是滞后。我甚至尝试改变JQM核心以用0代替hoverDelay,但仍然没有任何结果。 –
@EduardLuca在这一点上,我会说你需要弄清楚,如果它是你的页面中导致缓慢的内容。有时如果DOM在JQM应用程序中变得太大,它可能会显得很慢。你的网页看起来是什么样的,哪一点需要时间太长? – asgeo1
如果您想为移动应用程序解决此问题,最好使用点击事件,而不是点击事件。
这段代码为我工作
var ua = navigator.userAgent,
event = (ua.match(/iPad|Android/i)) ? "touchstart" : "click";
$("button,a").bind(event, function()
{
$(this).trigger('click');
});
作为参考,这里是一个很好的JQM性能优化列表:http://blog.safaribooksonline.com/2012/07/20/jquery-mobile-performance-improvement/ – Hope4You