Javascript Sencha Touch 2.2列表不重复使用列表项

Javascript Sencha Touch 2.2列表不重复使用列表项,javascript,sencha-touch,sencha-touch-2,Javascript,Sencha Touch,Sencha Touch 2,我有一个列表链接到一个满是Facebook好友的商店。它包含大约350条记录。 列表顶部有一个searchfield,可在keyup上触发以下功能: filterList: function (value) { // console.time(value); if (value === null) return; var searchRegExp = new RegExp(value, 'g' + 'i'), all = Ext.getStore('

我有一个列表链接到一个满是Facebook好友的商店。它包含大约350条记录。 列表顶部有一个searchfield,可在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);
  },
现在,这在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 
有人知道为什么它现在会这样,或者有人有更好的过滤方法吗

更新

使用
true
参数调用
clearFilter
似乎可以加快速度,但速度不如以前快

更新

实际上,它与过滤商店无关

它与呈现列表项有关。Sencha显然为存储中的每条记录创建了一个列表项,而不是仅仅创建几个列表项并重用它们

是否有一个明显的原因导致它这样做?

列表中的“无限”配置是否设置为true

您可能不希望列表一次呈现300多行,因此设置该标志将减少生成的DOM量。

列表上的“无限”配置是否设置为true

您可能不希望列表一次呈现300多行,因此设置该标志将减少生成的DOM量。

谢谢。“默认为false…”我简直不敢相信。这么重要的变化(几乎)没有通知…谢谢。“默认为false…”我简直不敢相信。如此重要的变化(几乎)未经通知。。。