我正在使用AJAX在MySQL數據庫中插入數據。在AJAX請求期間,有一個PHP函數在JSON數組內部循環,以獲取數據並將其插入到數據庫中。一切正常。jQuery AJAX - 在請求期間從php獲取數據
但是,我想知道是否有一種方法可以在AJAX請求期間將PHP變量傳遞給jQuery,以便將其追加到HTML中或用console.log
檢索數據。我可以在AJAX上獲得這些信息,但可以在AJAX請求期間獲取信息嗎?
我正在使用AJAX在MySQL數據庫中插入數據。在AJAX請求期間,有一個PHP函數在JSON數組內部循環,以獲取數據並將其插入到數據庫中。一切正常。jQuery AJAX - 在請求期間從php獲取數據
但是,我想知道是否有一種方法可以在AJAX請求期間將PHP變量傳遞給jQuery,以便將其追加到HTML中或用console.log
檢索數據。我可以在AJAX上獲得這些信息,但可以在AJAX請求期間獲取信息嗎?
沒有。 HTTP是無狀態的。您提出請求並獲得結果。 您必須使用不同的技術來檢查服務器請求的處理進度。
鑑於您在某處(db,cache或其他)處理過程中存儲了進程的記錄,更簡單的方法是使用另一個AJAX調用返回最後處理記錄的簡單函數。 這是一個傳統的投票機制。
更高級的解決方案可能會使用升級到websockets的不同連接。這將是一個真正的實時頻道。
在這些之上有一個可能性的世界。它僅取決於您需要使用POST請求進行管理的內容以及處理需要多長時間。
對於大型有效載荷,通常立即返回並開始處理其他任務通常會更好。 (並因此檢查進程的池化機制)
我認爲你可以在頁面上回顯php var?
E.g. echo "<label>".$phpVarToAppend."</label>";
謝謝您的詳細解答。我的目標是計算在數據庫中插入的帖子數量,並獲取當前帖子的名稱。該請求可能需要幾秒到45-60秒。你有什麼解釋的具體和簡單的例子嗎?謝謝 – freaky
不,因爲我不使用php。 :)這些是一般概念,你可以在網上找到更多。像跟蹤上傳的主題一樣(上傳是一個不同的用例,但將其想象爲長時間運行的服務器操作 - >與您的任務沒有區別)http://www.sitepoint.com/tracking-upload-progress-with-php-and -javascript / –