[英]Update large HTML content in realtime using Node.js and Socket.io
我正在構建一個Web應用程序,該應用程序將根據一個客戶端所做的更改來更新每個客戶端網頁的HTML內容,為此,到目前為止,我正在使用Node.js的Socket.io。
我正在使用HTML5的contenteditable屬性,以允許客戶端手動編輯div元素的內容,該元素也需要為其他客戶端更新。
我面臨的問題是我不了解通過websocket發送哪些數據來通知服務器以及其他客戶端所做的更改。
要在添加和刪除每個字符時發送整個innerHTML,則意味着通過websocket發送大量數據,這會導致性能下降和速度降低。 發送附加數據不是一種選擇,因為我們不知道數據在div元素中的什么位置被附加,刪除或編輯。
請注意,使用鍵盤並不是一個客戶端可以更改其網頁副本的HTML內容的唯一方法。 客戶端使用javascript會根據一些活動來更改所需div元素的數據。
現在,我需要知道如何才能通過websocket發送准確的更改信息,即使是最微小的更改也可以獲取實時體驗。
PS我打算不使用任何現有的模塊,如Share.js,但歡迎提出建議。
這實際上不是一個“問題”,而是一個討論,將是“頭腦風暴”主題。 同樣,它是基於觀點的,因為沒有一種特定的方法可以討論如此廣泛的話題。
但是,我會抓住機會,並以純正的恕我直言的方式為我提供解決方法(很抱歉如此個人化):
<ul>
包含許多<li>
,按索引引用每個元素-足夠公道,但是如果在兩者之間放置新元素呢? 那會弄亂參考。 因此,引用應該是唯一的,並且完全取決於服務器將決定的同步ID。 您需要保留所有引用的列表以及指向html元素的指針,因此很容易直接訪問它們。 同樣,這主要是基於意見的答案,而且不是一個小話題,它涉及許多領域。 我認為用“純”和“好”的方法來瞄准目標,而不是“最快”的方法,可能會有更簡單的解決方案,但需要權衡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.