2012-04-20 99 views
1

我有一個100.000行txt文件,我需要閱讀它才能將其大部分插入到我的數據庫中。 我想使用這個插件,因爲我發現它非常容易使用:更新jquery進度條,同時閱讀txt文件(來自php)

http://www.bram.us/projects/js_bramus/jsprogressbarhandler/#download

我的問題是:我讀與PHP的txt文件,但我不understant如何更新進度條! 我在想這樣的事情

echo '$("#progressbar").progressbar({ value: '.($k++).' });'; 

其中$k從0到100,但是,在這裏我必須把它?

+0

我會這樣做。在頁面加載時,我運行2個Ajax調用。首先ajax請求將只執行一次,並實際啓動您的php閱讀邏輯。第二個Ajax請求實際上會抓取當前的進度。您將需要修改您的PHP閱讀腳本,以便更新會話中的一些當前進度($ _SESSION ['current_progress'])。然後,在另一個php腳本中,您只會從會話中獲取此var並回顯輸出。所以,我把第二個Ajax調用放在計時器上,就像每秒一樣。通過這樣做,我會發送請求並獲得實時進度,所以我可以手動更新頁面上的進度條。 – 2012-04-20 08:11:17

回答

0

你不可能混合PHP和JavaScript:

  1. 的PHP將運行並生成一個HTML/JS文件
  2. 的HTML/JS文件將被髮送到客戶端
  3. 客戶端將運行JS:$("#progressbar").progressbar({ value: XX });

因此k將是靜態的。

-

如果你真的想輕鬆地做這樣的事情,你可以使用一箇中介數據庫表有三列:txt_file,位置,長度 雖然PHP腳本運行在經常更新此表一個txt文件。

客戶端,在Javascript中,您可以使用jQuery每5或10秒創建一個ajax請求,這將調用另一個PHP頁面,並且此PHP頁面將只返回中間表中的相應行。一旦你有結果你可以更新進度條。

-

這是實現你最簡單的辦法,但它仍然是非常髒,和txt文件更好的分析必須非常長!

+0

謝謝!我認爲這不是可能的,但我只是希望。 – Yuri 2012-04-20 09:32:05

0

有沒有直接的方法來實現這件事情。首先執行PHP腳本,然後將輸出發送到查看網頁的客戶端,這就是爲什麼您無法向客戶端顯示PHP腳本處理的實時狀態的原因。

你將不得不使用AJAX的組合和數據庫:

創建一個表來跟蹤文本文件的加載進度。每當用戶(客戶端)向頁面發送請求時,請繼續使用進度更新表格。使用會話ID作爲表上的索引,以便跟蹤每個客戶端的進度。現在使用AJAX請求從表中獲取進度並使用進度條將其顯示給客戶端。