2009-04-29 58 views
4

我有一個過程,我想在頁面的背景中運行。這個過程需要一段時間才能完成,比如說幾分鐘。AJAX(原型/ php)在腳本執行過程中獲取部分狀態更新

我已經設置好了,從頁面上我可以點擊一個按鈕來啓動這個過程,稍等一會,然後它就會完成,我可以通過頁面更新通知我該過程已成功運行。我正在做這與原型和PHP。

我想要做的是在進程運行時進行狀態更新。所以它可以更新一個頁面,讓我知道到目前爲止已經處理了多少記錄,或更新狀態欄或類似的東西。

這可能嗎?我只是不是一個巨大的JS大師,我可以做我已經描述的基本功能,但想知道是否有可能擴展它做這個額外的一點,因爲我沒有任何運氣谷歌搜索或通過文檔。

回答

2

只要使用PHP,你就可以最終完成輪詢。您需要在後臺生成長時間運行的進程,例如向文件數據庫寫入進度信息。

然後,瀏覽器可以每x秒調用一次不同的php腳本,並以此狀態報告。

輪詢雖然很糟糕,但這就是你用PHP所堅持的。

+0

因此,分叉進程,然後讓進程更新文件/數據庫...好的,可以工作。你說那是我堅持使用的PHP,我的意思是我可以用python或perl或其他方式編寫這個特定的模塊,那麼其他一些不需要輪詢的選項是什麼?只是好奇。 – 2009-04-29 13:40:39