0

範囲が0から250,000であることを除いて、完全に正常に動作するjQuery UIで作成されたスライダーがあり、何かが変化するたびにajaxリクエストを呼び出すイベントがあるため、一方の側から別の側にゆっくりとスライドするとその結果、膨大な量の ajax リクエストが発生しますが、これはまったく良くありません。

jQuery UI ドキュメントを掘り下げていましたが、この問題を解決する方法が見つかりませんでした。ユーザーがスライダーを押した時点から一時的にイベントをブロックし、ユーザーがスライダーとの対話を停止したときにのみイベントをトリガーしますが、これについては何も見つかりませんでした。

4

3 に答える 3

5

スライダーのスライドイベントをサブスクライブするのではなく、スライドチェンジまたはストップスライドイベントをサブスクライブしてみませんか?

$( ".selector" ).slider({
   change: function(event, ui) { ... }  // Called after slidestop or if changed programmatically
   stop: function(event, ui) { ... }    // Called when user stops sliding
});
于 2010-11-17T21:09:11.560 に答える
0
    we can define steps in it also like,

    $("#slider-range-max").slider({
            range : "max",
            min : 0,
            max : 200,
            step : 0.1,   //steps
            value : 200,
            slide : function(event, ui) {
                $("#amount").val(ui.value);
            }
        });

Even we can handle it by writing value in textbox like this,

on value change of textbox call this function by passing parameter this.value

function setSlider(value) {
    $("#slider-range-max").slider({
        range : "max",
        min : 0,
        max : 200,
        step : 0.1,
        value : value,  // value will be setted slider position as par value
        slide : function(event, ui) {
            $("#amount").val(ui.value);
        }
    });
    $("#amount").val($("#slider-range-max").slider("value"));
}
于 2012-03-31T04:44:58.513 に答える
0

可能性の 1 つは、タイマーを作成し、タイムアウト期間をミリ秒 (たとえば 500) で指定することです。これは 0.5 秒です。スライド イベントが発生するたびに、タイマーをタイムアウト期間にリセットします。

タイマーが完全にカウントダウンした場合は、ユーザーがスライダーの移動を停止したと見なして、Ajax 呼び出しをトリガーできます。

これは、TypeWatchなどの JQuery プラグインが、ユーザーがテキスト ボックスへの入力を停止したときにのみ Ajax リクエストを送信するために使用するアプローチです。

于 2010-11-17T21:16:17.810 に答える