特定の数のレコードを持つ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();
}
});
}
前もって感謝します