繁体   English   中英

如何在Sencha Touch中的clearFilter()函数中解决性能问题?

[英]How to solve problems of performance in the clearFilter() funcion in Sencha Touch?

我在Sencha Touch应用程序中工作,当我使用“ clearFilter()”时,我在性能方面付出了很大的努力...例如,当我在searchfield中编写并遵循过滤器中指定的规则时(从第二个字符)我正在等待写下一个字符。

目前,我的实现是这样的:

store.clearFilter();
if (queryString && queryString.length > 2) {
      var thisRegEx = new RegExp(queryString, "i");
      store.filterBy(function (record) {
        return (thisRegEx.test(record.get('customerId')) ||
        thisRegEx.test(record.get('customerName')) ||
        thisRegEx.test(record.get('customerAddress')));
      }, this);
    }

它正在工作,但存在指示的问题。

如何以正确的方式解决这个问题?

clearFiltersuppressEvent参数:

truetrue则以无提示方式清除而不触发refresh事件。

因此,请尝试store.clearFilter(true)

首先,商店中有多少条记录? 记录的数量会对此产生很大影响。

为了提高性能,您应该将这3个字段合并为1个其他字段,以便可以使用一个正则表达式在一列中进行搜索。 每个记录3个正则表达式可能会很昂贵。 这样,您也可以使用filter方法,而不是filterBy

最后,我更喜欢在这里为侦听器使用buffer选项,以避免每次按下按键时都给打字机带来麻烦。 例如:

xtype: 'textfield',
listeners: { 
   keyup: {
       buffer: 500, // 500ms
       fn: function(){
           // filter code
       }
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM