2011-12-01 99 views
1

我通過jQuery的AJAX調用一個PHP腳本,但它需要大量的時間才能返回結果,所以我想知道我怎麼可以顯示的結果爲正印在我的腳本。我的PHP腳本這裏只是舉例:Ajax調用,同時更新

<?php 
// process.php 
for($i = 0; $i <= 4; $i++){ 
echo json_encode(array("name" => $i)); 
sleep(2); // this sleeps for 2 seconds 
} 
?> 
與我的jQuery

現在我呼籲該網頁,並與網頁上的ID ajaxquery形式:

$("#ajaxquery").live("submit" , function(){ 
    var formdata = $(this).serialize(); 
    $.ajax 
     ({ 
      type: "POST", 
      url: "process.php", 
      data: formdata, 
      dataType: "json", 
      success: function(data) 
      { 
       $("#success").html(data.name); 
      } 
     }); 

    return false; 
}); 

現在這將輸出的所有結果在同一時間在div#成功幾秒後,但我怎麼能達到它打印回聲語句儘快process.php處理它,然後再等待2秒,並在div成功添加下一個結果。謝謝你的幫助。

回答

1

您必須安裝在客戶端上一個javascript計時器,並打電話給你的PHP腳本每兩秒鐘,以獲得新的數據。這些數據可以附加在jquery .append函數中。

+0

謝謝主席先生,但如果我再打電話與JavaScript來process.php會從開始不是重新運行腳本再次? – user969068

+0

你將不得不修改您的事業的腳本支持異步模式再次 – Jan

+0

感謝,我在想如果我的數據保存到一個文件的Result.txt,然後調用JavaScript計時器從那裏,當檢查是否有新的內容和更新阿賈克斯成功被稱爲我停止計時器,是一種正確的方式? – user969068

0

成功函數被調用,只有當$.ajax功能從服務器獲取成功響應,並出現這種情況只有在PHP腳本完成它的執行。第一個完成後,必須通過使另一個Ajax調用改變你的邏輯,例如說:「簡歷」的工作服務器端

+0

感謝,我在想,如果我保存數據到的Result.txt文件中,然後調用JavaScript計時器從那裏檢查是否有新的內容和更新以及阿賈克斯成功叫我停止計時,什麼是正確的方法是什麼? – user969068

+0

@Dshah可能是一種方式。 –

+0

感謝您的建議,只是想確定是否有更好的方法:) ..關心 – user969068