タイトルの通り、前回のajaxリクエストを中止したいと思います。ユーザーが文字 (または数字) を入力するたびに ajax を介してコンボボックスを要求し、ajax を介して言ったようにデータを要求し、データをコンボボックスに返します。
私の問題は、フィールドにユーザー入力を入れるたびに ajax リクエストが山積みになることです。
私がやりたいことは、まず前のリクエストを中止してから、現在のリクエストに進むことです。私はこのコードを試しました:
comboObj.onTypeAhead = Ext.Function.createInterceptor(comboObj.onTypeAhead, function() {
Ext.Ajax.abort(); //aborts the last Ajax request
return true; //runs the onTypeAhead function
});
それはうまくいかなかったので、これを試しました:
......
listeners: {
beforequery: function(evt){
Ext.Ajax.abortAll(); //cancel any previous requests
return true;
}
}
リスナーが実行されるとキャンセルされるajaxリクエストも使用するタイマーがあるため、これもうまくいきませんでした。
どうすればいいですか?