リスト用のフィルターフォームがあります。フィールドの1つはテキスト検索フィールドです。ユーザーがフィールドに入力するとき、ユーザーが0.5秒(500ミリ秒)入力を停止するまで待ってから、検索を実行します。この値は、使用すると自然に感じられるため、任意に選択しました。先日、上司が検索を使用しているところを見ていましたが、彼がまだ入力しているときに検索がトリガーされていることに気づきました。 1秒(1000ミリ秒)の遅延は私には長すぎるように見えますが、任意の値を選択するのではなく、遅延の長さに何らかのコンセンサスがあるのではないかと思っていました。
その他の詳細
select
フィールドは、検索を即座に呼び出しますkeyup
イベントをリッスンしますそれは本当にユーザーとユーザーが入力している内容によって異なります。物理キーボードでの入力は、タッチデバイスよりもはるかに高速です。
したがって、質問は、システム上の平均的なユーザーの平均WPMタイピング速度がどのくらいかであり、そこから逆方向に作業します。
それが25 WPMであるとしましょう。通常、Wordは5文字と見なされるため、その速度は1分あたり120文字、つまり約0.5秒(60/120)です。キーストローク間の時間が均一ではない(そうではない)と仮定し、その約2倍の変動(かなり正確です)を考慮すると、1.0秒の数値になります。
75 WPMでより速く入力するユーザーの場合、入力の終わりを示すギャップはわずか0.3秒です。
オートコンプリートで同様の問題に遭遇しました。タイピングしているときにしばらく作業していましたが、タイピングが完了するまで結果を見ることはありませんでしたが、タイピングの間に一時停止するとバックエンドが発生したため、タイピング中に別の同僚がそれを見ましたトリガーされる呼び出し。
ここには実際には銀の弾丸はありませんが、次の理由により、1000ミリ秒の遅延は500ミリ秒の遅延よりも優れていると思います。
結局のところ、1000ミリ秒のオプションを使用すると、不要な処理時間を節約でき、結果が返されているというフィードバックが表示されれば、検索が実行されるまで待つ必要はそれほど多くありません。単一の文字を入力して待って検索を開始した場合、それはあまり役に立ちません。文字数の制限とタイマーを併用すると、共通点が見つかる可能性が高まります。
私は一般的に、プロジェクトの非開発者またはテストに使用する人々(タイプが遅い場合でも)は、システムの使用方法のより一般的な反映であると考えたいと思います。お役に立てば幸いです。
静的遅延に関するコンセンサスではなく、もう少し適応性の高いものを検討することもできます。
たとえば、数語または数文字よりも短いものを検索することがまれである場合は、ユーザーの1分あたりの単語数または1秒あたりの文字数を特定してみてください。これらを取得したら、大幅な減少があったときに検索をトリガーできます。
なぜ遅延が必要なのですか?検索テキストフィールドが常に利用可能である限り、最初のキーが押された後に検索を開始し、連続する各キーストロークで検索を絞り込むことができます。たとえば、Google検索を見てみましょう。 最初のキーストロークの後、検索が開始されます。
まだ結果がありません...
...最後に結果が表示されます: