對於我的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
}
我認爲你應該期望有一些放緩w/900K記錄。我會等到用戶鍵入幾個字符,然後加載數據的一個子集。我假設這是應用程序(如Firefox)或搜索引擎(如Google)所做的。 – JeffryHouser