用于flex中冗长xmls的autosuggest组件

时间:2013-03-31 13:41:59

标签: flex autosuggest

我有一个autosuggest库,我一直在我的项目中使用。我现在有一个textinput,我必须使用这个库。但这次输入有大约900,000条记录。即,具有900,000个节点的xml。当我将它与组件一起使用时,它可以工作,但它变得很慢,可能是因为在每个按键上过滤了xmllistcollection。在每次按键时,刷新需要2-3秒。有没有办法加快这个过程? 我在本地机器上测试了这个xml。

1 个答案:

答案 0 :(得分:0)

对于我的autosuggest小部件,我在keyUp上使用clearTimeout和setTimeout来确定他们何时完成输入。如果他们每750毫秒就可以击中一个键(对于一个体面的打字员来说并不难),那么我会等到他们完成打字之后再进行任何搜索(或在你的情况下过滤)。

private var _timeoutID:uint=0;

private function onKeyUp(event:KeyboardEvent):void
{

    if(event.keyCode == Keyboard.ENTER)
    {
        //do search immediately
        clearTimeout(_timeoutID);
        doSearch()
    }
    else if (event.keyCode == Keyboard.ESCAPE)
    {
        //canel search
        clearTimeout(_timeoutID);
    }
    else
    {
        //begin timer
        clearTimeout(_timeoutID);
        _timeoutID = setTimeout(doSearch, 750 );
    }
}
private function doSearch():void
{
    //filter xmlcollection here
}