2012-09-12 58 views
0

蔭試圖安裝一個簡單的進度條,但卻執行「更新」,但只有當「所有」 Ajax請求完成?JQuery的問題建立進度

開始請求的;

$(".cb-download").colorbox({ 
    opacity:.8, 
    onComplete:function() { 
     $.colorbox.resize(); 
     if (ERROR !== true) { 
      // update Progress 
      var progress = setInterval(updateProgress, 100); 

      $.ajax({ 
       url: baseUrl + "/mail/do-download", 
       async: true, 
       success: function(data) { 
        $("#mail-download").html(data); 
        $.colorbox.resize(); 
        clearInterval(progress); 
       } 
      }); 
     } else { 
      $('#mail-download-success').hide(); 
      $('#mail-download-session-lost').show(); 
      $.colorbox.resize(); 
     } 
    } 
}); 

function updateProgress() 
{ 
$.ajax({ 
    url: baseUrl + "/mail/get-progress", 
    success: function(data) { 
     console.log(data); 
     $("#current-count").html(data); 
    } 
}); 
} 

updateProgess只是調用一個迴應數字的動作。

任何想法?

回答

0

找到了我的解決方案。

PHP會話正在鎖定會話文件,因此第二個請求正在等待第一個請求(文件鎖定)。

使用

session_write_close(); 

長時間運行的腳本啓動時,沒有IAM。 Progress現在寫入數據庫/文件而不是會話。工作得很好。