Tit*_*eul 0 javascript sencha-touch sencha-touch-2
我有一个列表链接到一个充满Facebook好友的商店.它包含大约350条记录.列表顶部有一个搜索字段,用于触发keyup上的以下功能:
filterList: function (value) {
// console.time(value);
if (value === null) return;
var searchRegExp = new RegExp(value, 'g' + 'i'),
all = Ext.getStore('Friends'),
recent = Ext.getStore('Recent'),
myFilter;
all.clearFilter();
recent.clearFilter();
// console.log(value, searchRegExp);
myFilter = function (record) {
return searchRegExp.test(record.get('name'));
}
all.filter(myFilter);
recent.filter(myFilter);
// console.timeEnd(value);
},
Run Code Online (Sandbox Code Playgroud)
现在,这曾经与ST2.1.1一起使用,但是我将应用程序升级到ST2.2.这真的很慢.它甚至使得Safari在iOS上冻结和崩溃......
这是日志给出的:
t /t/gi Friends.js:147
t: 457ms Friends.js:155
ti /ti/gi Friends.js:147
ti: 6329ms Friends.js:155
tit /tit/gi Friends.js:147
tit: 7389ms Friends.js:155
tito /tito/gi Friends.js:147
tito: 7137ms
Run Code Online (Sandbox Code Playgroud)
有谁知道它为什么现在这样,或者有没有人有更好的过滤方法.
更新
clearFilter用一个true参数调用似乎可以加快速度,但它并不像以前那么快.
更新
它实际上与过滤商店无关.
它与渲染列表项有关.Sencha显然为我在商店中的每条记录创建了一个列表项,而不是仅创建几个列表项并重用它们

它有这么明显的原因吗?
您的列表中的"无限"配置是否设置为true?
您可能不希望列表一次呈现300多行,因此设置该标志将减少生成的DOM数量.
| 归档时间: |
|
| 查看次数: |
1259 次 |
| 最近记录: |