我有一个自动建议库,我一直在我的项目中使用它。我现在有一个文本输入,我必须在其中使用这个库。但这次输入有大约 900,000 条记录。即,具有 900,000 个节点的 xml。当我将它与组件一起使用时,它可以工作,但它变得很慢,可能是因为在每次按键时过滤了 xmllistcollection。每次按键都需要 2-3 秒来刷新。有没有办法加快这个过程?我在本地机器上测试了这个 xml。
问问题
34 次
1 回答
0
对于我的自动建议小部件,我在 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
}
于 2013-04-02T21:32:59.413 回答