0

システムで実行されるプログレスバーを作成しようとしているasp.netアプリケーションがあります.Javaスクリプトを使用して更新の進行状況を実行していvar update = 0;ます$("#progressbar").progressbar('value', update);. forループを使用すると、forループとブール値を使用する準備ができたので、システムは長時間実行されるプログラムのエラーをスローします。Java スクリプト コードの残りの部分が壊れています。値を 60 に更新したいと思います。

呼び出されている JavaScript

   $.updateProgressbar = function () {
        //Calling PageMethod for current progress
        PageMethods.OperationProgress(function (result) {

            //Updating progress
            $("#progressbar").progressbar('value', result.progress)
            //If operation is complete
            if (result.progress == 100) {
                //Enable button
                $("#Confirm_btn").attr('disabled', '');
            }
            //If not
            else {
                //Reset timer
                setTimeout($.updateProgressbar, 10);
            }
        });
    };

    $(document).ready(function () {
        //Progressbar initialization
        $("#progressbar").progressbar({ value: 0 });
        //Button click event
        $("#Confirm_btn").click(function (e) {

            e.preventDefault();

            //Disabling button
            $('#error').text("");
            $("#Confirm_btn").attr('disabled', 'disabled');

            var update = 0;


            //Making sure that progress indicate 0
            $("#progressbar").progressbar('value', update);
            //Call PageMethod which triggers long running operation
            PageMethods.Operation(function (result) {
                if (result) {
                    //Updating progress
                    $("#progressbar").progressbar('value', result.progress)
                    //Setting the timer
                    setTimeout($.updateProgressbar, 5);
                }
            });
        });
    });
4

2 に答える 2

0

関数を繰り返し呼び出すために使用できるsetIntervalため、この関数は ajax 関数をトリガーしたり、progresBar を単純に更新したりできます。これはあなたのプログラムをブロックするものではありません。

于 2013-02-21T11:13:46.543 に答える
0

PageMethods.OperationProgress は、コールバック関数で適切な結果オブジェクトを返していないようです。それが、アプリが無限に実行され、プログレスバーが更新されない理由です

于 2013-02-21T11:14:09.767 に答える