對於一個主要的學校項目,我正在實施一個實時協作編輯器。對於一個小背景,基本上這意味着兩個(或更多)用戶可以同時鍵入到文檔中,並且它們的更改會自動傳播到另一個(類似於Etherpad)。現在檢測HTML文本框中發生了什麼變化
我的問題如下:
我希望能夠檢測到什麼樣的變化進行到一個HTML文本字段的用戶。他們可以:
- 插入字符
- 刪除字符
- 粘貼字符的字符串
- 切字符
的字符串,我希望能夠以檢測這些發生了變化,然後通知其他客戶類似於「在位置2插入字符'c'」等。
無論如何,我是一跳以便就如何執行這些更改的檢測獲得一些建議?
我的第一次嘗試是在發生變化之前和之後考慮Carot位置,但是這失敗了。
對於我的第二次嘗試,我正在考慮對textfields的全部內容進行新舊值的比較。我是否錯過了這個解決方案的明顯之處?有更簡單的東西嗎?
這是我原來的做法。它可以檢測擊鍵情況,但檢測不到其他更改,如剪切和粘貼。 – 2010-04-01 19:13:38
我也在考慮這個解決方案,但是如果兩個客戶端在服務器確認客戶端發生變化之前改變了某些東西,情況會發生競爭嗎? 至於剪切和粘貼,http://stackoverflow.com/questions/686995/jquery-catch-paste-input – 2010-04-01 20:09:56