[問題] 在網頁上實作共同編輯
大家好,
我現在在開發一個web應用程式,
其中有個功能是共同編輯,
像是google doc那種多人編輯同一篇文章。
我先附上部份code:
HTML:
<div class="text_content">
/*這是編輯區塊*/
</div>
JavaScript:
/*考量到對Server的負擔,
所以是用keyup event來觸發timeout來
呼叫web socket發送編輯區塊內的文字給每個使用者
*/
var timeout;
function keyUpEvent(){
window.clearTimeout(timeout);
timeout = window.setTimeout(呼叫WebSocket, 2000);
/*使用者打字停下來兩秒後才會呼叫WebSocket*/
}
然後是用
$(".text_content).html(發送的文字);
來覆寫編輯區塊的文字
表達能力好像不是很好QQ
問題來了,
一、會有吃字的問題
可能使用者A打到一半就被使用者B所輸入的內容蓋掉,
一般的話如果每keyup一次就發送應該就可以大幅減少這問題,
只是會嚴重造成server的工作量暴增(?)
二、只要WebSocket把文字傳送來之後,
因為是用html()來修改編輯區塊,
輸入的游標會跳到div的最頂端或者不見,
以上兩個問題有比較好的解決方法嗎?
只求提示,感謝板上的高手們
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.171.168.159
※ a0529gox:轉錄至看板 Web_Design 02/19 17:38
→
02/19 19:47, , 1F
02/19 19:47, 1F
→
02/19 19:47, , 2F
02/19 19:47, 2F
→
02/19 19:48, , 3F
02/19 19:48, 3F
→
02/19 19:48, , 4F
02/19 19:48, 4F
→
02/19 19:49, , 5F
02/19 19:49, 5F
→
02/19 19:49, , 6F
02/19 19:49, 6F
→
02/19 19:49, , 7F
02/19 19:49, 7F
→
02/19 19:49, , 8F
02/19 19:49, 8F
→
02/19 21:16, , 9F
02/19 21:16, 9F
→
02/19 21:17, , 10F
02/19 21:17, 10F
推
02/20 08:57, , 11F
02/20 08:57, 11F
→
02/20 08:57, , 12F
02/20 08:57, 12F
→
02/20 08:58, , 13F
02/20 08:58, 13F
→
02/20 08:58, , 14F
02/20 08:58, 14F
→
02/20 08:58, , 15F
02/20 08:58, 15F
→
02/20 08:59, , 16F
02/20 08:59, 16F
→
02/20 08:59, , 17F
02/20 08:59, 17F
→
02/20 10:07, , 18F
02/20 10:07, 18F
→
02/20 10:07, , 19F
02/20 10:07, 19F
→
02/20 10:14, , 20F
02/20 10:14, 20F
→
02/20 10:15, , 21F
02/20 10:15, 21F
→
02/20 10:45, , 22F
02/20 10:45, 22F
推
02/20 11:32, , 23F
02/20 11:32, 23F
→
02/20 11:33, , 24F
02/20 11:33, 24F
→
02/20 11:33, , 25F
02/20 11:33, 25F
→
02/20 11:33, , 26F
02/20 11:33, 26F
→
02/20 11:33, , 27F
02/20 11:33, 27F
推
02/21 19:46, , 28F
02/21 19:46, 28F
→
02/22 08:33, , 29F
02/22 08:33, 29F
→
02/22 08:33, , 30F
02/22 08:33, 30F
推
02/22 12:16, , 31F
02/22 12:16, 31F
→
02/22 12:16, , 32F
02/22 12:16, 32F
推
02/22 12:19, , 33F
02/22 12:19, 33F
→
02/22 12:20, , 34F
02/22 12:20, 34F
→
02/22 12:20, , 35F
02/22 12:20, 35F
→
02/22 12:21, , 36F
02/22 12:21, 36F
→
02/23 22:19, , 37F
02/23 22:19, 37F
推
02/24 14:47, , 38F
02/24 14:47, 38F