2016-04-25 45 views
0

我使用ajax請求調用一個php頁面,然後php頁面調用一個python腳本,python腳本寫入一個txt文件中完成的工作的百分比,當然還可以計算出需要的內容。從進程欄的lQuery ajax請求獲取部分響應?

從我的代碼中,只有在ajax請求完成後才能訪問txt文件,但這沒有意義,因爲它始終是100%。

我如何讀取數據,如果與進度的TXT讓我們說:http://domain.com/progress.txt在請求。

$.ajax({ 
 
xhr: function() { 
 
     var xhr = new XMLHttpRequest(); 
 
\t \t xhr.open('GET', "http://domain.com/pr.txt", true); 
 
\t \t xhr.send(); 
 
\t \t var pro_perc = xhr.responseText;; 
 
\t \t alert(pro_perc); 
 
\t \t move1(pro_perc); 
 
     return xhr; 
 
    }, 
 
type: "POST", 
 
url: "http://domain.com/req.php", 
 
data: reqdata, 
 
cache: false, 
 
success: function(html) { 
 

 
var values = html.split('[mydata]'); 
 
var mydata = values[1]; 
 

 
});

回答

1

其實你可以在這裏找到你的答案 JQuery ajax progress via xhr

,或者您可以使用此

var interval; 
    $.ajax({ 
     beforeSend: function(){ 
      interval = setInterval(function(){ 
        $.get("http://domain.com/pr.txt").done(function(progress){ 
         console.log(progress) 
        }) 
       },10); 
     }, 
     type: "POST", 
     url: "http://domain.com/req.php", 
     data: reqdata, 
     cache: false, 
     success: function(html) { 
      clearInterval(interval); 
      var values = html.split('[mydata]'); 
      var mydata = values[1]; 
     } 
    }); 
+0

謝謝,我讀了一些答案,但沒有得到什麼實際上是「evt」。我需要使用XMLHttpRequest從txt文件中讀取如何使這個事件不發生... – Brana

+1

evt其事件對象,您可以將它推送到console.log()並查看此對象。其實你正在逐字節讀取txt文件,並evt.total =文件大小,並evt.loaded其當前大小 – ArtemSky

+0

POST請求不讀取任何文件...它處理我通過POST請求發送的文本 - 它是不是上傳進度條上傳的問題。 – Brana