2009-12-18 47 views
0

我得到了一個服務器端腳本,我用jQuery ajax方法調用。它可能需要很長時間才能處理數據集。在處理每一行輸入數據後,打印輸出一個"OK <row id>"。內容類型爲plain/textajax調用jQuery - 解析傳入的反饋數據

我想要的是在我的jquery函數中獲取此輸出,解析它,並向用戶顯示某種反饋信息。因爲它可能需要長達20-30分鐘來處理所有的數據......

我該如何在jQuery中完成這項工作(服務器腳本將此打印出來)。如果我使用下面的代碼,那麼在腳本結束運行後調用success函數。

$.ajax({ 
type: "POST", 
url: "script.cgi", 
data: data, 
success: function() { 
    // do something 
    alert ("OK"); 
} 
}); 
+0

恕我直言,你最好能做的就是展示一個進度條。 – 2009-12-18 09:28:15

+0

我想顯示數據解析的哪些部分是成功的,哪些不是... – kender 2009-12-18 09:39:52

回答

1

您無法通過單個Ajax調用完成您想要的任務。您需要一些服務器端交互(將進度存儲在數據庫或會話中),然後輪詢服務器以獲取狀態。

+0

哦,所以我需要提出2個請求 - 一個提供數據,一個提取處理狀態,比如每10秒更新一次用戶的顯示?讓我想知道爲什麼我無法在ajax調用中處理來自服務器的部分響應:( – kender 2009-12-18 09:45:49

+0

是的,這就是你需要做的事。還要記住,大多數瀏覽器不能同時有很多Ajax請求處於待處理狀態。請求需要在開始新的請求之前結束,因此永遠不會有一個好主意,因爲它有長期的Ajax請求 – kgiannakakis 2009-12-18 10:21:58

+0

感謝您的解釋:) – kender 2009-12-18 10:33:48