[英]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);
}
它正在工作,但存在指示的问题。
如何以正确的方式解决这个问题?
首先,商店中有多少条记录? 记录的数量会对此产生很大影响。
为了提高性能,您应该将这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.