2016-01-18 16 views
0

我閱讀了幾個教程,但找不到適用於我的案例的工作示例。javascript + mysql實時更改

只要數據庫發生變化(可以說我會通過phpmyadmin更改值),我想要進行實時刷新(側向)。

從我的理解,socket.io應該是一個解決方案。此外,我發現this tutorial here,但它似乎過時了,所以它不再工作了(從我可以告訴)。

是否有任何替代方案或工作示例?它可以是非常基本的,但使用setInterval與100-500範圍內的參數似乎有點沉重,對吧?我不能等待超過1秒。

我不確定,如果有任何監聽器或服務,它們可以將更改「推」到JS站點,所以我不會依賴JavaScript超時函數。

此外,從socket.io上的文檔(和示例)中,我找到了在localhost上運行服務器的方法,但在服務器上卻沒有。比方說,我有這樣的:

var.app = require('http').createServer(handler), 
... 
app.listen(8000); 

似乎聽localhost:8000。我可以將這個參數替換爲實時url嗎?

+0

我不認爲你可以用活的URL,因爲socket.io是「聽」到的端口號替換它。 – Thomas

回答

0

你可以使用WebSockets,它已經被廣泛支持,但你仍然需要在你的機器上運行一個WebSockets服務器,你仍然不能實際發送你在phpmyadmin中所做的修改,因爲PHP不知道如果你在那裏做了任何改變。

解決方案可能會很複雜,因爲您必須將選項,大多數可能用WebSockets解決的問題組合起來,因此您只需將通知從PHP發送到JavaScript,但除此之外,您還可以必須檢查數據庫的變化,如果你真的想監視你在phpmyadmin中的變化(我強烈建議不要這樣做,它更容易創建函數,以你想要的方式修改數據庫,然後每次檢查數據庫一些毫秒)。

你的結構可能會是這個樣子:

的JavaScript - >連接 - > PHP服務器的WebSockets

,並在每次更改提交更改爲JavaScript。

對不起,我不能幫你設置WebSockets服務器,但我知道Symfony2有一個包,你可以下載並進行反向工程。

這裏的MDN頁:https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API