我試圖將Google文檔的實時協作功能添加到HTML中的可編輯textarea。例如,這將允許2或3個用戶可以協同編輯相同的textarea。如何解決這個問題呢,還是有一個可以使用的JavaScript庫? (我使用PHP,mySQL和JavaScript/AJAX/jQuery)。如何實施實時表單編輯,如Google文檔
2
A
回答
9
爲了便於在多個Web客戶端之間進行實時更新,您需要使用一種技術,通過使用Comet或Websockets解決方案來利用Web的請求/響應週期。
爲了保持textarea的更新,您需要建立一個長久的HTTP連接或從所有3個客戶端到您的服務器的WebSocket連接。每個textarea都需要一個keyup或keypress處理函數,當被調用時,它將字符發送到服務器。當你的服務器檢索到這個數據時,它需要返回一個響應給另外兩個連接的客戶端。
然後需要通過更新textarea的value屬性和最近的數據來處理響應。
我看到你正在使用PHP,我知道它支持彗星。您需要設置彗星(或Websockets)才能實現這樣的解決方案。
就這樣說,一個更基本的選擇是使用輪詢來達到預期的效果。這將涉及所有3個客戶端定期向服務器發出請求以檢索更新。正如您可以想象的那樣,輪詢速度越快,應用程序的實時感受就越多。但是,輪詢速度越快,您的應用程序就會消耗更多的帶寬和資源。
對於3個客戶端來說,這可能是可行的,但對於涉及重度使用的任何嚴重應用程序,您肯定會想要查看Websockets或Comet。
要回答您關於JavaScript庫的問題,請查看Dojo Cometd庫,瞭解客戶端上的Comet解決方案。
相關問題
- 1. 如何實施臨時編輯
- 2. 如何實施Google +
- 3. Google文檔如何實現富文本編輯?
- 4. Google文檔如何實現內容編輯?
- 5. 文檔轉換實時 - 實施問題
- 6. 如何實施Google Calendar API
- 7. 如何在Google Sitebricks中編輯實體
- 8. 在編輯文本樣式的實施
- 9. 實施簡單的文檔管理
- 10. Google多帳戶登錄如何實施?
- 11. Google如何實施Microsoft Exchange訪問?
- 12. 如何在phonegap中實施Google Auth?
- 13. 如何從腳本編輯Google表單?
- 14. 如何爲iPhone實現富文檔編輯器
- 15. 如何編寫Google文檔類型富文本編輯器
- 16. 遠程編輯Google文檔
- 17. 實施Google OAuth 2
- 18. 實施Google建議
- 19. 如何編輯文檔庫
- 20. PHPStorm - 如何設置實時編輯
- 21. PushNotifications - 如何實施
- 22. 如何實施RingFiFoBuffer
- 23. 如何實施beatspectrum?
- 24. 如何實施getElementByClassName()
- 25. 如何實施didReceiveMemoryWarning?
- 26. 如何實施spark.ui.filter
- 27. 如何實現富文本編輯器
- 28. 如何使用Wireshark監控Google文檔的實時更新?
- 29. 實施通用單鏈表
- 30. 谷歌如何文檔保持整個實時版本的編輯
++很清楚,很好的解釋。 – Jack
謝謝,閱讀Websockets – cppit