1

特定の数のレコードを持つPHPスクリプトをバッチ処理するために、次のjquery ajaxコードを使用しています。関数「do_ajax()」はバッチ処理を行います。すべてが FF で正常に動作しており、進行状況バーには、完了したタスクの進行状況 (10%、20%、30% .....100%) が表示されています。

しかし、IE と Google Chrome では、進行状況バーは中間の進行状況 (10%、20% など) をロードしていません。ただし、最終ステータス(100%)をロードします。

また、次の行のコメントを外すと、IE と Chrome でも動作します。

//アラート(パーセンテージ);

setTimeout と delay 関数も試しましたが、これらも同じ結果を返しています

以下は使用したコードです

$(document).ready(function(){
    $(".big-link").click(function() {
        var rec_id = $(this).attr('id');
        var r=confirm("Do You really want to process?");
        if (r==true){                           
            $( "#progressbar" ).progressbar({ value: 0});               
            do_ajax(start, offset);             
        }
    });
}); 

var total   = 50;   
var offset  = 10;
var start   = 0;


function do_ajax(){
    var cnt = 0;
    $.ajax({
        type: "GET",
        async:false,
        url: "createsubscrptn.php?start="+start+"&offset="+offset,
        error: function(xhr, status, error){
            alert(error);
            location.reload(true);
        },
        success : function (serverResponse){
            cnt = parseInt(serverResponse);
            percentage =    parseInt( (cnt/total)*100);
            //alert(percentage);
            $( "#progressbar" ).progressbar({ value: percentage});
            start+=offset;                                                      
            if (start < total) {
                do_ajax();
            }
            alert('Process Completed');
            location.reload(true);
            exit();
        }
    });
}

前もって感謝します

4

0 に答える 0