2012-06-17 42 views
1

我是這個主題的新手,所以這對你們大多數人來說可能是一個愚蠢的問題。我有一個簡單的服務器,有幾個用戶可以訪問。如果它們中的任何一個更改元素的CSS屬性,其他人應該能夠實時查看更改。如何在服務器端修改並保存html/css?

我應該使用像node.js這樣的東西來執行此操作嗎?我如何保存用戶所做的更改?

的網頁看起來是這樣的:http://stom89.dyndns.org/

謝謝!

+0

這是什麼目的? –

+0

服務器將控制使用Raspberry Pi打開/關閉不同設備的開關。 – Tomas

+0

@Tomas只是爲了澄清你真正的要求...你是否試圖將信息實時推送給用戶? (這通常是一項非常艱鉅的任務,並且需要你幾乎擁有自己的服務器),或者你會不會經常被用戶瀏覽器檢查數據? – gabeio

回答

2

我想你想改變你的CSS/HTML,是狀態。就像燈開/關一樣?然後你需要將每個狀態保存在一個mySQL數據庫中,然後爲每個用戶獲取數據。如果您希望網上用戶看起來像實時,那麼請使用js(ajax)定期同步數據。

沒有數據庫的替代方法將與文件。

如果你不想爲此使用mysql,你可以使用文件。我建議使用ini文件。有關how to read/write ini files, you can visit this question.的更多信息這非常簡單,您可以將每個變量放在一個漂亮的數組中。

你需要什麼:PHP,jQuery的(或爵士)的一點點了一下,GET變量的理解

我建議你創建3個文件。

的index.php
你的主要頁面是客戶端。使用獲取 變量來提取信息。你可以爲此使用jQuery.get()。

getstate.php
這是將要讀的ini文件,給你回美國每個設備的文件。用index.php中的jQuery.get()讀取它們。

savestate.php
這是你從index.php的實例的請求發送新的狀態到文件:http://address.goes.here/savestate.php?bedroomlight=1&garagelight=0

請告訴我更有趣的是,INI文件可寫/可以通過許多編程語言輕鬆讀取,因此您可以使用Raspberry Pi輕鬆操作數據。(比如有人打開燈光,劇本輪詢狀態可能會改變ini文件)

+0

的確,我想改變這些狀態。我可以只用JavaScript來做到這一點嗎? – Tomas

+0

簡短回答沒有。你需要保存服務器端的狀態,JS不能這樣做。儘管你可以使用PHP,JS和文件。查看我上面修改的答案。 – ioannis

+0

想想吧,你不一定需要ini文件來做到這一點。用逗號分隔值的簡單文本文件可以。猜猜.ini是整潔/冷卻器使用。 :P – ioannis

2

我認爲你需要使用一個sql數據庫,並有一個JavaScript來檢測更改和通過AJAX更新。這是我最好的想法。

1

如果我完全理解你的問題,我一直在搞這個問題。我會建議看看python,ruby或node.js,雖然我不能說哪個最容易學習,儘管我會建議python和comet server這可能是猿,並且只是讓服務器將更新推送給用戶已經在網站上。

編輯: 建議投票:: jQuery
http://api.jquery.com/jQuery.get/標準數據檢索這是所有你需要。

+0

我認爲node.js是一個不錯的選擇,但不容易學習! – Tomas

+0

我認爲node.js對於這樣一個簡單的應用來說是過分的,有些人可能會認爲mySQL也是如此,因此讓我們變得最簡單。文件和定期數據輪詢。 – ioannis

+0

@ioannis @ioannis這就是爲什麼我建議猿猿是一個已經建立的服務器,你只需告訴它幾件事...儘管 – gabeio

相關問題