2010-04-01 82 views
0

對於一個主要的學校項目,我正在實施一個實時協作編輯器。對於一個小背景,基本上這意味着兩個(或更多)用戶可以同時鍵入到文檔中,並且它們的更改會自動傳播到另一個(類似於Etherpad)。現在檢測HTML文本框中發生了什麼變化

我的問題如下:

我希望能夠檢測到什麼樣的變化進行到一個HTML文本字段的用戶。他們可以:

  • 插入字符
  • 刪除字符
  • 粘貼字符的字符串
  • 切字符

的字符串,我希望能夠以檢測這些發生了變化,然後通知其他客戶類似於「在位置2插入字符'c'」等。

無論如何,我是一跳以便就如何執行這些更改的檢測獲得一些建議?

我的第一次嘗試是在發生變化之前和之後考慮Carot位置,但是這失敗了。

對於我的第二次嘗試,我正在考慮對textfields的全部內容進行新舊值的比較。我是否錯過了這個解決方案的明顯之處?有更簡單的東西嗎?

回答

0

我的僞代碼/寫出的響應將是(如果我明白你的問題)使用jQuery檢測鍵入事件,然後通過ajax保存輸入到服務器,然後也採取響應並將其發回輸入。這不是非常有效,但基本上這個想法是,你不斷髮布並檢查發佈的內容。如果你想查看別人正在做什麼,你可以每秒鐘ping一次服務器,並用響應進行更新。

所有這些當然可以優化,但它仍然是一種服務器徵稅。你也可以看到,如果你能實現 谷歌 託皮卡波爲您的項目,或與我們聯繫與 谷歌 託皮卡,看看他們是如何做到這一點:)

+0

這是我原來的做法。它可以檢測擊鍵情況,但檢測不到其他更改,如剪切和粘貼。 – 2010-04-01 19:13:38

+0

我也在考慮這個解決方案,但是如果兩個客戶端在服務器確認客戶端發生變化之前改變了某些東西,情況會發生競爭嗎? 至於剪切和粘貼,http://stackoverflow.com/questions/686995/jquery-catch-paste-input – 2010-04-01 20:09:56

1

這是一個很艱難的工作,使這一工作的今天,對於幾個原因,但

一個個人註釋:檢測單詞,字符的變化可能是完全無感和不可用的,檢測代替幾段變化,或者在一個類似Excel工作表,該單細胞

我的情況下希望這可以幫助

請隨時糾正我的英語!

相關問題