2013-07-25 101 views
2

我有一個顯示一些數據的網頁。我有一個不斷更新數據的python腳本(從數據庫中提取數據,並將其寫入html頁面)。腳本需要大約5分鐘才能獲取數據。我已經設置了使用元標記每60秒刷新一次的html頁面。不過,我想改變這一點,只要python腳本更新它就刷新頁面,所以基本上我需要添加一些代碼到我的python腳本中,只要它寫完就刷新html頁面。使用python刷新網頁

這可能嗎?

+0

你用什麼來顯示HTML頁面? –

+0

我不確定我是否得到了你。如果這就是你的意思,我已經運行在apache上了。 – Shan

+0

你使用的是什麼框架,我們需要上下文,查看python文件的頂部,並告訴我們導入的語句至少是什麼 – Stephan

回答

1

沒有潛入像WebSockets這樣複雜的現代事物,服務器無法將通知「推送」到Web瀏覽器。但是,您可以執行的操作使客戶端以用戶不可見的方式檢查更新。

這將涉及編寫一個額外的文件的Javascript &。在編寫主網頁時,在Javascript內部添加一個時間戳(Unix時間戳在這裏最容易)。您還將相同的時間戳寫入Web服務器上的文件(我們稱之爲updatetime.txt)。在頁面上使用AJAX請求時,請引入updatetime.txt &查看文件中的數字是否大於生成文檔時存儲的數字,如果看到更新的時間,請刷新頁面。您可以改變如何「立即」發現變化,但控制您輪詢的速度。

我不會在編寫代碼時涉及太多細節,但我可能只是使用JQuery中的$.ajax()(即使它對於一個函數來說有點矯枉過正)來進行調用。把東西放在JS上的訣竅是setinterval。你應該能夠找到大量關於使用它們已經寫好的文檔。