2

正解です。私が見つけたすべてのオートコンプリートプラグインと関数は、キーアップ/ダウンなどでのみ更新されます。これは問題ありませんが、ユーザーが入力を停止し、フレーズや単語を入力している場合は、検索が開始されます。スクリプトはすぐに提案などを開始できません。

これは皆さんにとって非常に簡単な修正または提案になることを私は知っているので、キーが押されたときにすぐに変換する方法について助けていただければ幸いです。

望ましい効果の例は、GoogleサジェストまたはFacebook検索です。検索は、キーを押すか変更するたびに即座に実行されます。これをエミュレートするにはどうすればよいですか?

ありがとう!

4

3 に答える 3

2

これはどういう意味ですか?または、Ajaxでデータベースから取得しますか?

var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
    $("#example").autocomplete(data);

JQuery

編集:この例はGoogleサジェストまたはFacebookと同じように機能するように見えるため、あなたが何を意味するのかわかりません。データベースが小さい場合は、ページの読み込み時にキャッシュを変数データにダウンロードできます。データベースがわずかに大きい場合は、アルファベット文字または一連の文字ごとにX個の応答のみにキャッシュを制限します。(つまり、WHERE city LIKE'aa%' LIMIT 10 AND WHERE ...)

于 2010-03-20T16:01:57.497 に答える
1

Wicket Webフレームワークには、「スロットリング」動作の概念があります。通常、WicketアプリケーションのAJAXリクエストは、「ajaxチャネル」に対してキューに入れられます。これにより、実行されているものがない場合、リクエストが即座にトリガーされます。リクエストがすでに実行されている場合、次のリクエストはキューに入れられ、現在のリクエストが戻ったときにトリガーされます。

「スロットル」を使用すると、動作が一定時間(たとえば、2秒)遅延します。同じ期間にビヘイビアーが再度発生した場合、最新のビヘイビアーのコールバックが、現在キューに入れられているビヘイビアーのコールバックに置き換わります。(たとえば、ユーザーが「albuquerque」と入力し始めると、イベント「A」、「AL」、「ALB」の順にトリガーされます。システムは「A」、「ALB」の順にトリガーし、「AL」をスキップします。キューに座っている間は「ALB」に置き換えられます。)これの目的は、キーを押すたびに動作を即座に起動することですが、サーバーが不要な要求で溢れるのを防ぎます。

wicket ajaxソースコードを確認してください: https ://github.com/apache/wicket/blob/wicket-1.4.8/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

Webフレームワークの詳細については、 http ://wicket.apache.orgを参照してください。

于 2010-03-20T16:07:44.750 に答える
1

それはあなたが探しているスペースの大きさとあなたのサーバーがどれだけ良いかによります。Facebookでの検索(人の名前だと思います)は、実際には1000ほどの連絡先を検索しているだけなので、すばやく検索できます。Googleはインフラストラクチャに多額の投資を行い、多くの応答をキャッシュするため、高速です。

私のプロジェクトの1つで、このjQueryプラグインを使用しました。これは、キャッシュされた結果に対して優れたパフォーマンスを提供します。これを使用して、約6Kの連絡先(名前など)のリストにオートコンプリート機能を提供しました。これはあなたが考えていたものですか?

于 2010-03-20T16:15:28.360 に答える