Jquery mobile jQuery手机过滤列表速度慢,在iPhone3GS上有150项

Jquery mobile jQuery手机过滤列表速度慢,在iPhone3GS上有150项,jquery-mobile,Jquery Mobile,Im使用jQuery移动过滤列表: 在我的PC上,它工作正常,但在我的iPhone3GS上,它的速度相当慢。在输入一封信和过滤列表之间大约有半秒的延迟。我有150个项目要过滤,从一些谷歌看来,这应该是处理得很好。那么,我只是对我想要的反应速度不切实际,还是可能出了什么问题 即使单词不是以字符开头,过滤器也会找到字符。因此,输入“ar”将找到“Paris”。这对我的应用程序来说是不必要的,我很高兴只返回以过滤器开头的字母开头的项目。是否可以关闭此功能?如果关闭此功能,我是否会看到明显的性能优势

Im使用jQuery移动过滤列表:

在我的PC上,它工作正常,但在我的iPhone3GS上,它的速度相当慢。在输入一封信和过滤列表之间大约有半秒的延迟。我有150个项目要过滤,从一些谷歌看来,这应该是处理得很好。那么,我只是对我想要的反应速度不切实际,还是可能出了什么问题


即使单词不是以字符开头,过滤器也会找到字符。因此,输入“ar”将找到“Paris”。这对我的应用程序来说是不必要的,我很高兴只返回以过滤器开头的字母开头的项目。是否可以关闭此功能?如果关闭此功能,我是否会看到明显的性能优势

我的结论是jquerymobile非常慢。我用jQuery重建了我的站点的一个精确副本,性能要好得多。也许是因为它是一个年轻的框架,但我非常主观的经验是,如果需要最佳性能,它还没有准备好生产

我的结论是jquerymobile非常慢。我用jQuery重建了我的站点的一个精确副本,性能要好得多。也许是因为它是一个年轻的框架,但我非常主观的经验是,如果需要最佳性能,它还没有准备好生产

我还没有发现过滤器搜索栏速度慢的解决方法,但是,如果您从UL LI列表中删除所有锚定标记和角色,这将删除数百个降低页面加载和转换速度的绑定。然后必须添加一个函数:



    // should be defined in your body onload method, or pageinit
    $("li").on("click", function(event) {
    // determine your URI here you want to load
    // ...
        $.mobile.changePage(uri);
    }; // if list dividers exist, add code to ignore them, or get page load error.

更新:根据文档,如果您将以下内容添加到mobileinit,则搜索子字符串将应用于正在搜索的单词的开头:



    $.mobile.listview.prototype.options.filterCallback = function( text, searchValue ) {
        return text.toLowerCase().substring( 0, searchValue.length ) !== searchValue;
    };

注意:这仍然不能完全加快搜索栏的速度。由于即时搜索和DOM更新,使用backspace的速度特别慢。我还没有看到一个API钩子来解决这个问题(还没有?)。它可能需要修改库

旁白:stackoverflow的代码验证程序过于挑剔,所以我忽略了细节,比如显式mobileinit代码


Update:如果您使用CSS3转换并出现问题,请考虑以下…

如果由于GPU的平铺渲染引擎在转换后未进行vsync同步而在iOS上遇到渲染瑕疵,以下操作可能会有所帮助:



    <style type="text/css">
      html, body { -webkit-transform: translateZ(0); }
    </style>


html,正文{-webkit转换:translateZ(0);}

我还没有找到一种解决过滤器搜索栏速度慢的方法,但是,如果您从UL LI列表中删除所有锚定标记和角色,这将删除数百个降低页面加载和转换速度的绑定。然后必须添加一个函数:



    // should be defined in your body onload method, or pageinit
    $("li").on("click", function(event) {
    // determine your URI here you want to load
    // ...
        $.mobile.changePage(uri);
    }; // if list dividers exist, add code to ignore them, or get page load error.

更新:根据文档,如果您将以下内容添加到mobileinit,则搜索子字符串将应用于正在搜索的单词的开头:



    $.mobile.listview.prototype.options.filterCallback = function( text, searchValue ) {
        return text.toLowerCase().substring( 0, searchValue.length ) !== searchValue;
    };

注意:这仍然不能完全加快搜索栏的速度。由于即时搜索和DOM更新,使用backspace的速度特别慢。我还没有看到一个API钩子来解决这个问题(还没有?)。它可能需要修改库

旁白:stackoverflow的代码验证程序过于挑剔,所以我忽略了细节,比如显式mobileinit代码


Update:如果您使用CSS3转换并出现问题,请考虑以下…

如果由于GPU的平铺渲染引擎在转换后未进行vsync同步而在iOS上遇到渲染瑕疵,以下操作可能会有所帮助:



    <style type="text/css">
      html, body { -webkit-transform: translateZ(0); }
    </style>


html,正文{-webkit转换:translateZ(0);}

使用vclick可在300毫秒内提高响应速度。帮助lot使用vclick可在300毫秒内提高响应速度。帮助很大