0

このコードを変更して、値が変数になり、進行状況バーがリアルタイム (または可能な限り最小の時間 - ミリ秒) で更新されるようにします。

現在の時刻を「シード」して、更新を促進します

<script type="text/javascript">
$(function() 
{             
    $("#container").progressbar({ value: 0 });
});
</script>


Fosco の編集: (現在は機能していません)

    <script type="text/javascript">
    updateProgress(0);
    function updateProgress(newvalue) 
    {
        $("#container").progressbar({ 'value': newvalue });
        newvalue = newvalue + 1
        if (newvalue < 101) setTimeout('updateProgress(' + newvalue + ');',100);
    }
    </script>
4

3 に答える 3

2

問題は、何がこの更新を促進するかということです。あなたが知る必要があるのはそれだけです。どのような値が変化しますか?

それが変化している場合はいつでも、プログレスバーの値を変更してください。

$("#container").progressbar({ value: 10 }); 

あなたが言う時間に基づいて播種しますか?...

function updateProgress(newvalue) {
    $("#container").progressbar({ 'value': newvalue });
    newvalue = newvalue + 1
    if (newvalue < 101) setTimeout('updateProgress(' + newvalue + ');',100);
}

それを開始する最初の関数は次のようになります。

updateProgress(0);

それを試してみてください。

于 2010-08-19T19:45:56.797 に答える
1

最初のビットは簡単です

<script type="text/javascript">
$(function(value) 
{             
    $("#container").progressbar({ value: value });
});
</script>

次のビットはそれほど簡単ではありません。プログレス バーの目的は進行状況を示すことですが、何の進行状況を示しているのでしょうか? この関数は、反映されているアクションを実行しているコードからできるだけ頻繁に呼び出す必要があります。

コードをループするだけの場合は、タイムアウトを設定して 1 ミリ秒後に関数を呼び出し、繰り返します。

ほとんどのブラウザの実際の最小時間分解能は 1 ミリ秒ではなく、かなり短いことに注意してください。

于 2010-08-19T19:47:35.457 に答える
1

「リアルタイム」とは、一連のステップが完了したときに更新したいという意味だと思います。時間の経過に基づいてプログレス バーを更新する場合は、何らかのアニメーション グラフィックを使用することをお勧めします。そうしないと、関数が実際に完了する前にプログレス バーの最後に到達する可能性があり、ユーザーが混乱する可能性があります。

アクションを完了するために実行する 3 つのタスクがあるアプリケーションで進行状況バーを使用しました。各タスクは独自の ajax 呼び出しで送信され、それぞれの成功ハンドラーに次のものが含まれていました。

$('.progress').progressbar('option', 'value', $('.progress').progressbar('option', 'value') + 33);

つまり、タスクの 1 つが終了するたびに、進行状況バーの現在の値に 33 を加算しました。

于 2010-08-19T20:04:17.890 に答える