0

クライアントコードと呼ばれるフィールドの一意性を検証しています...

この目的でonkeyup JS イベントを使用しました。しかし、キーを非常に速く入力すると、うまく機能しません。これについて

onkeyup イベント

入力したデータがテーブルに既に存在するかどうかを確認するために ajax リクエストを送信しています。

代替手段があれば助けてください..

4

3 に答える 3

2

あなたの質問は、あなたが直面していると思われる実際の問題に関して非常に曖昧です。しかし、私がそれから導き出したのは、キーをすばやく押すことを提案しているため、リクエストが多すぎるということです!


ご存知のAjaxように、これは通常のページ リクエストと同様に非同期で行われるため、同じネットワーク レイテンシ、スループット、およびラウンド トリップの制約に拘束されます。

必要な機能を実現するクリーンな方法は、スロットリングと呼ばれる手法を使用することです。jsこの目的 に最適なプラグインの 1つがここ にあります。スムーズなUIを提供します。


また、 のような特定の特殊キーをトラップしたくない場合は、 orイベントESCを使用することをお勧めします。具体的な理由は覚えていませんが、単なる提案です。keypresskeydown

于 2012-09-13T08:56:48.627 に答える
2

主な問題は、AJAX に時間がかかることだと思います。したがって、ユーザーが非常に速く入力すると、サーバーに多くの要求が送信され、実際には必要のない多くの回答が得られます。考えられる解決策の 1 つは、イベントでタイムアウトを作成することです。たとえば、ユーザーが約 500 ミリ秒ほど文字を入力しないまで待ちます。この後、リクエストをサーバーに送信します。
依頼が減るし、依頼がごちゃごちゃしなくなる… .

于 2012-09-13T08:48:30.133 に答える
1

onkeydownイベントとチェックを使用しevent.charCodeます。それは、連続押しのタイピングを高速にしても起動します。

于 2012-09-13T08:43:10.260 に答える