たとえば、Firefox の右上の google/yahoo 検索ボックスに何かを入力すると、ある種の「オートコンプリートの提案」が表示されます。
別の例は、YouTube の検索ボックスと、この質問のプレビューのすぐ下にある Stackoverflow タグの編集ボックスにあります。それらはどのように機能しますか?それらの背後にあるテクノロジーは何ですか?
たとえば、Firefox の右上の google/yahoo 検索ボックスに何かを入力すると、ある種の「オートコンプリートの提案」が表示されます。
別の例は、YouTube の検索ボックスと、この質問のプレビューのすぐ下にある Stackoverflow タグの編集ボックスにあります。それらはどのように機能しますか?それらの背後にあるテクノロジーは何ですか?
それらの背後にあるテクノロジーは何ですか?
その下でどのデータ構造が使用されているか疑問に思っている場合は、「trie 」と呼ばれます。また、 「 DAFSA 」を使用すると、試行よりも少ないスペースを使用できます。
それらはどのように機能しますか?
両方ともツリーとして実装され、ツリーの各ノードは文字列内の 1 文字に対応し、前に現れる文字は後に現れる文字の親になります。たとえば、文字列 "tap"、"taps"、"top"、"tops " Trie (左) と DAFSA (右) に格納されているため、タップを入力し始めると、入力された文字に基づいてツリーが走査され、各単語に割り当てられた重みに基づいて候補が表示されます。重みが割り当てられる場合があります。単語の使用頻度に基づいています。
最悪の場合の文字列の検索は、文字列の長さを m として O(m) 時間です。
これは AJAX を使用して行われます。このサイトには素晴らしいチュートリアルがあります: AJAX Suggest Tutorialと、Web サイトがダウンしているように見える WaybackMachine バージョンです。
私の知る限り、キーワードと少しのコードを含むデータベースがすべてです。
私は今、実際に仕事でそれを使用する方法を学んでいます。:)
別のリソースはw3schoolsです。彼らもそれをカバーしました。
彼らは通常、JavaScript を使用して次のことを行います。
JavaScript に表示するエントリのリストがある場合、オートコンプリート ボックスを表示するようにページが変更されます。
ウェブサイトにオートコンプリート ボックスを配置したい場合は、私が使用したところ、次のものが非常に優れていることがわかりました。また、人気のある jQuery フレームワークに基づいています。
とても簡単です。
クライアント側:
サーバ側:
Smashing Magazineの記事 (以下のリンク) には、優れたオープンソースの Country セレクターがあり、プレーンなオートコンプリートソリューションでのユーザビリティの課題についての議論が含まれており、それらを修正しています。
私は開発者ではなく UX ですが、賢明な開発者であれば、国名だけでなく、他の種類の選択を処理するためにこのオープンソース コードを適応させることができると確信しています。:)
デモとオープンソースのダウンロード. それを試してみてください!
免責事項: 私は、この国のセレクターを作成した人々とは何の関係もありません。私はたまたまそれを知っており、ユーザビリティに関する情報を開発者である FWIW と共有したいと思っています。
これにはさまざまな実装があるのと同じくらい多くの答えがあります。Stackedでサンプルを確認できる AutoCompleter は、必要なコントロールを ControlCollection に設定する .ASPX ページの分離コードで処理されるイベントを発生させることによって機能します。ただし、テキスト コンテンツがアンカー リンクであるリテラル コントロールのみを使用してスタックされています。しかし、必要に応じてチェックボックスや画像を追加することもできます...
ASP.NET を使用している場合は、AutoCompleter から始めるのが最適です。「何か他のもの」を使用している場合は、おそらく ScriptAculous AutoCompleter が開始するのに最適な場所です...
私は最近、オートコンプリート機能にも取り組んでおり、オートコンプリートに表示されるテキストにインデックスを付けるために lucene を使用しました。検索は lucene で高速です。オートコンプリート データを操作する際の注意点: