データ ストレージ
この情報はデータベースに保存する必要があります。ユーザーごと、フィールドごとに、このタイプの情報を保持するテーブルを 1 つまたは 2 つ作成します。
クライアント側クエリ
ユーザーがテキスト フィールドへの入力を開始すると、クライアント側から (AJAX を介して) データベースにクエリを実行できます。これを行う場合、サーバーに候補を照会する前に、フィールドに少なくとも 3 文字 (ish) が入力されるまで待機することをお勧めします。これにより、リクエスト数とクライアントとサーバー間のトラフィックがわずかに減少します。
この方法は、自動提案のヒットが多数発生する可能性のあるフィールドに使用します。
キャッシュ
この方法を使用すると、特定の状況で応答をキャッシュすることによってプロセスを最適化できます。
テキスト フィールドに 3 文字が入力された後にのみクエリが実行されると仮定すると、結果全体をキャッシュできます。テキスト ボックスにさらに文字を追加しても、返される結果の数は増えません。そのため、キャッシュされた結果をフィルタリングし続けることができます。ただし、ユーザーが文字を削除した場合は、キャッシュを更新して、最も適切な自動提案ヒットを利用できるようにすることができます。
サーバー側のプリロード
サーバー側では、このデータをすべて収集し、ページ要求とともに送信します。(テキスト フィールドのイベントで参照できる場所に JavaScript 配列としてプッシュ ダウンできonchange
ます。この方法では、AJAX 呼び出しを行う必要はありません。
これは、可能性のある自動提案のヒット数が多くないフィールドには適しているようです。