2011-11-25 28 views
1

我使用LOAD DATA INFILE來導入11M條記錄,然後腳本繼續執行其他操作。導入需要10分鐘,在這段時間內瀏覽器已經放棄了(3分鐘後),我沒有看到後續操作的進度。有沒有一種方法可以在耗時的查詢正在運行的同時定期向瀏覽器輸出內容。 Phpmyadmin似乎做了這樣的事情,瀏覽器沒有超時。定期輸出到長時間運行的瀏覽器

回答

0

檢出flush()(http://php.net/manual/en/function.flush.php)或ob_flush()(http://www.php.net/manual/en/function.ob-flush.php)。

基本上,您通常會生成您的輸出(在這種情況下爲當前狀態),然後強制服務器輸出緩衝區中當前的內容。

如果您的操作需要10分鐘,您可能需要使用set_time_limit($秒)(http://php.net/manual/en/function.set-time-limit.php),請注意,不要將頁面掛起時設置爲大量。

如果您希望每10%(1分鐘)輸出一次狀態,則可以在刷新每個更新後重置超時2分鐘。這樣,如果腳本超出預期的運行時間,它將超時。

+0

謝謝,但問題是,PHP不會繼續下一個功能,直到它完成mysql查詢。我需要它在執行查詢時向瀏覽器輸出內容。 –

+0

然後我的答案的第二部分回答你的問題,你可以設置超過10分鐘的超時。 – savageguy

+0

是的,我有一個20分鐘的PHP超時,PHP不超時。瀏覽器在3分鐘後停止等待。一旦發生這種情況,我不會再對瀏覽器進行任何更新。 我有其他長循環的腳本。有了這些,我可以定期向瀏覽器輸出一些信息,以保持它「感興趣」 –

相關問題