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