Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отслеживание изменений в <textarea> 
V
    Опции темы
dmage
Дата 13.6.2009, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 21.6.2007

Репутация: нет
Всего: 1



Как в <textarea> возможно отследить изменения?

Суть в следующем: есть <textarea> с достаточно объемным текстом. Примерно раз в n секунд необходимо отправлять на сервер информацию о том, что пользователь изменил в этом тексте. Если ничего не изменилось, то ничего не отправлять.

Отправлять весь с такой частотой довольно-таки накладно, поэтому хотелось бы отправлять информацию вида: с позции 25 добавлен текст "foobar", с позиции 60 по 70 текст удален.

Изначально была идея сделать слежение по событию onkeypress, однако непонятно как отследить изменения происходящие по Ctrl+Z. К тому же изменения по меню (например, Правка -> Отменить) таким образом вообще не ловятся.

Была так же идея по таймеру раз в n секунд делать diff сохранненого текста (от предыдущей итерации) и текущего текста, но т.к. n скорее всего будет <= 1, а алгоритм diff вроде как имеет сложность O(n^2) , то это решение кажется не очень удачным по производительности.

Собственно вопрос: есть ли подходящие события у <textarea> или есть какие-нибудь библиотеки, реализующие подобный функционал?
PM MAIL   Вверх
ksnk
Дата 13.6.2009, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(dmage @  13.6.2009,  22:26 Найти цитируемый пост)
Была так же идея по таймеру раз в n секунд делать diff 

imho, наиболее правильный путь. Разве что начинать этот процесс стоит при onfocused и заканчивать при onblur этой текстареи.

вряд ли нужно делать полный diff. Достаточно вычислить неизменённый кусок текста сначала и неизменённый кусок текста с конца. А вот середину уже посылать без точного выяснения различий.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aliance
Дата 15.6.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Посмотри сюда, думаю полезно прочесть будет. Если ловить все события для всех браузеров - то тогда можно легко отлавливать изменения.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0842 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.