1

すべてのキーアップイベントで提案をロードする検索ボックスがあったとします。サーバーがすべてのキーアップイベントのすべてのリクエストに応答するのは最悪だと思います。これは1秒間に約10回以上になる可能性があります。つまり、1秒あたりまたは特定の時間ごとにリクエストを制限するAJAXリクエスト制限機能が必要です。ajax リクエストを制限する方法をコーディング例で教えてもらえますか?

次に、JSP を使用して AJAX リクエストを制限する場合、それを共有したいと思います。JSP をクライアント側の言語にするのは良い考えでしょうか。悪意のあるユーザーは、これらの ajax リクエスト制限機能を簡単に削除して、サーバーを破滅させることができます。

また !そのための救済策はありますか?

読んでくれてありがとう。

4

2 に答える 2

2

自分で debounce メソッドを書くことができます:

var timer = null;
searchInput.addEventListener('keyup', function (evt) {
    clearTimeout(timer);
    timer = setTimeout(function () {
        // this event listener will postpone its execution until after 1 second have elapsed since the last time it was invoked
        // send your ajax request here
    }, 1000);
}, false);

または、アンダースコアを使用して keyup イベントを制限できます。

searchInput.addEventListener('keyup', _.debounce(function (evt) {
    // this event listener will postpone its execution until after 1 second have elapsed since the last time it was invoked
}, 1000), false);
于 2012-04-27T15:22:33.647 に答える
0

キーイベントが発生するたびにリセットされるタイマーを設定する必要があります。タイマーが切れるまでキーが押されなかった場合は、ajax リクエストを送信します。

于 2012-04-27T13:45:34.767 に答える