2013-03-25 2 views
0

Мне нужно реализовать функцию автоматического сохранения в веб-приложении текстового редактора для управления автоматическим сохранением при вводе пользователем. У меня нет специальных знаний о таком роде технологии, поэтому мне интересно, как он обрабатывается в современном вебе-текстовый редактор и специально, когда функция сохранения срабатывает:Запуск автосохранения в приложении текстового редактора

  • Это вызвано клавиатурой событие или периодическое сканирование (каждые 5 секунд, например), которое проверяет предыдущие события клавиатуры?
  • Должен ли он запускаться, когда пользователь не вводит (например, через 3 секунды бездействия) для снижения сетевого трафика?

Любые предложения?

Спасибо

+1

Я бы подумал, что второй вариант будет лучшим способом. Первый вариант также будет работать, но если он был основан на событии клавиатуры, пользователь может несколько раз нажимать тот же ключ, чтобы сохранить/разорвать приложение. Может быть, это может помочь? http://paulirish.com/2009/jquery-idletimer-plugin/ – SpaceCowboy

+0

Интересный плагин jQuery. Это может помочь. Thx – benweet

ответ

4

Например, here описывается autosave в Wordpress. Мое мнение таково, что зависит от типа приложения. Лучший способ найти лучшее решение - это, как мне кажется, тот способ, который вы хотели бы увидеть, если вы посетите какой-то сайт.

Итак, если вы помещаете куда-нибудь кнопку «Сохранить», то я думаю, что вам действительно не нужно запускать ее каждые несколько секунд, но каждые несколько минут (например, Wordpress).

Поскольку вы будете слушать события на клиентском языке (возможно, JavaScript), вам не нужно беспокоиться о производительности - просто слушайте каждые 10 секунд, если хотите, и проверьте, удовлетворяются ли требования для автосохранения. Если они есть, вы сохраняете его в некоторой базе данных с помощью некоторой магии AJAX.

Если бы я был вами (или, если я являюсь пользователем вашего сайта), я бы хотел начать прослушивание событий на первом ключе. Когда я ввел первую букву, JS будет хранить в БД через AJAX через каждые 1 минуту или каждые 500-1000 символов, независимо от того, что встречается впервые. Я думаю, было бы здорово принять во внимание, что кто-то быстрее, кто-то медленнее. Вот почему я бы проверил как количество введенных символов, так и время.

Это мое мнение. (в конце концов извините за грамматику, бесплатно для редактирования: D)

EDIT: Кроме того, если сайт принадлежит вам, и вы ожидаете большого трафика и большого количества пользователей, вы можете динамически видеть, как работает система, и соответственно установить свои переменные (дольше/short time/chars)

+0

Это лучший подход для меня. Я добавил кнопку «Сохранить», и я запускаю автоматическое сохранение каждые 30 секунд (настраивается на сервере). Я сохраняю файл в localStorage в любом случае, поэтому, если пользователь не сохранил файл на сервере по какой-либо причине, он может восстановить свою работу, когда вернется. – benweet

1

Я думаю, что нет «правильного ответа». это зависит от того, как вы ожидаете, что ваше приложение будет работать.

Если вы хотите, чтобы данные на сервере всегда соответствовали тексту на переднем конце, вы должны привязать свою функцию сохранения к событию клавиатуры. Тем не менее, это явно неэффективно, потребляемая полоса пропускания и ненужная в нормальной ситуации.

Если последовательность данных не так важна для вас, проверяя текст и сохраняя его (если текст обновляется) после определенного периода является правильным способом.

1

Я работал над подобным инструментом для веб-сайта для ведения блога.Оказалось, что для этого требуется более расчетных точек экономии, а не просто:

  • каждые х секунд
  • после х секунд бездействия

В дополнение к вышесказанному я также добавил:

  • при нажатии из текстового поля
  • перед закрытием страницы
  • отслеживающих операции сохранения и убедитесь, что они не вступают в противоречие или сохранить слишком много раз
  • дезактивировать автосохранение при отсутствии набора текста в текстовом поле

В нашем случае это не было веб-приложением, и я javascript, и было крайне важно убедиться, что он был быстрым и надежным.

Вы можете найти свое решение в http://www.omidmufeed.com/autosaving-text-editor-with-javascript/

Я надеюсь, что это поможет кому-то.

Смежные вопросы