1

ここに私の問題があります: オートコンプリート jQuery プラグインを使用して、ユーザーがキーノアードを囲むことで複数の ajax リクエストを回避したいと思います。

$('#query1').autocomplete({
                    serviceUrl:'/actions/autocomplete?population=salon',
                    minChars:3, 
                    maxHeight:300,
                    width:200,
                    clearCache:true,
                    onSelect: function(suggestions,data){ $(".btn1").attr("href", "${pageContext.request.contextPath}/actions/espaceClients?participantId=" + data) }
                });

のようなもので

                var search = false;
            $('#query1, #query2, #query3').keyup(function(){
                if (!search){
                    search = true;
                }
                if (search) {
                    search = false;
                    autocompleteThem();
                }
            });

ご覧のとおり、上記のコードはばかげていますが、私がやろうとしていることをちょっと示しています。

簡単に言えば、ユーザーが一定時間他に何も入力しない場合、オートコンプリートを呼び出すことができます。

私の頭が混乱しているので、私が明確であることを願っています...

4

2 に答える 2

4

次のように、そのプラグインのdeferRequestByオプションを使用します。

$('#query1').autocomplete({
                serviceUrl:'/actions/autocomplete?population=salon',
                minChars:3, 
                maxHeight:300,
                width:200,
                clearCache:true,
                deferRequestBy: 200, //200ms
                onSelect: function(suggestions,data){ $(".btn1").attr("href", "${pageContext.request.contextPath}/actions/espaceClients?participantId=" + data) }
            });
于 2010-05-03T12:26:58.750 に答える
3

複数の同時リクエストを防止しますか? これにより、このプラグインの有用性が阻害されます。リクエストに遅延を追加するか、AjaxQueueなどのプラグインを使用して、結果が正しい順序でブラウザーに返されるようにすることができます。

組み込みの遅延パラメーターを使用するには (マニュアルから):

オートコンプリートがキーストローク後にアクティブになるまで待機するミリ秒単位の遅延。ゼロ遅延は、ローカル データ (より応答性が高い) には意味がありますが、応答性が低くなる一方で、リモート データに対して多くの負荷が発生する可能性があります。

指定された遅延オプションでオートコンプリートを初期化します。

$( ".selector" ).autocomplete({ delay: 0 });

初期化後の遅延オプションを取得または設定します。

//getter
var delay = $( ".selector" ).autocomplete( "option", "delay" );
//setter
$( ".selector" ).autocomplete( "option", "delay", 0 );

使用しているオートコンプリート プラグインの遅延パラメータに相当するものは次のとおりです。

deferRequestBy
于 2010-05-03T12:21:46.107 に答える