2012-05-08 34 views
2

我試圖將Google文檔的實時協作功能添加到HTML中的可編輯textarea。例如,這將允許2或3個用戶可以協同編輯相同的textarea。如何解決這個問題呢,還是有一個可以使用的JavaScript庫? (我使用PHP,mySQL和JavaScript/AJAX/jQuery)。如何實施實時表單編輯,如Google文檔

回答

9

爲了便於在多個Web客戶端之間進行實時更新,您需要使用一種技術,通過使用Comet或Websockets解決方案來利用Web的請求/響應週期。

爲了保持textarea的更新,您需要建立一個長久的HTTP連接或從所有3個客戶端到您的服務器的WebSocket連接。每個textarea都需要一個keyup或keypress處理函數,當被調用時,它將字符發送到服務器。當你的服務器檢索到這個數據時,它需要返回一個響應給另外兩個連接的客戶端。

然後需要通過更新textarea的value屬性和最近的數據來處理響應。

我看到你正在使用PHP,我知道它支持彗星。您需要設置彗星(或Websockets)才能實現這樣的解決方案。

就這樣說,一個更基本的選擇是使用輪詢來達到預期的效果。這將涉及所有3個客戶端定期向服務器發出請求以檢索更新。正如您可以想象的那樣,輪詢速度越快,應用程序的實時感受就越多。但是,輪詢速度越快,您的應用程序就會消耗更多的帶寬和資源。

對於3個客戶端來說,這可能是可行的,但對於涉及重度使用的任何嚴重應用程序,您肯定會想要查看Websockets或Comet。

要回答您關於JavaScript庫的問題,請查看Dojo Cometd庫,瞭解客戶端上的Comet解決方案。

+0

++很清楚,很好的解釋。 – Jack

+0

謝謝,閱讀Websockets – cppit