Автосохранение данных, введенных в поля формы

Какую задачу будем решать?

Оказывались ли вы когда-нибудь в такой ситуации: нужно заполнить длинную форму с большим количеством полей или написать эмоциональный и вдохновляющий комментарий, а когда работа почти закончена браузер внезапно прекращает свою работу или случайно закрывается вкладка с открытой страницей, или обрывается соединение с Интернетом, или отключается электричество? Если нет, то вы - счастливчик. Но никто не застрахован от такого рода неприятностей.

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

 

Имеющиеся варианты решения

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

Еще одно решение: Sisyphus.js

Реализация автосохранения данных по типу Gmail не совсем очевидна. Решение должно быть простым и легким в использовании, что влечет за собой требование отказаться от применения манипуляций на серверной стороне.

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

 

Как использовать

Использовать Sisyphus.js очень просто. Нужно выбрать форму, которая будет работать с автосохранением:

$('#form1, #form2').sisyphus();

Или защитить все формы на странице:

Доступны следующие опции:

{
customKeyPrefix: '',
timeout: 0,
onSave: function() {},
onRestore: function() {},
onRelease: function() {}
}

Вот для чего они предназначены:

  • customKeyPrefix Дополнительный ключ в локальном хранилище, который используется для хранения значений полей формы..
  • timeout Интервал (в секундах) между сохранения данных. Если установлено значение 0, то сохранение будет выполняться после обновления любого поля.
  • onSave Функция, которая вызывается при сохранении данных в локальном хранилище.
  • onRestore Функция, которая вызывается при восстановлении данных из хранилища. В отличие от функции onSaveCallback, она применяется ко всей форме, а не к отдельному полю.
  • onRelease Функция, которая вызывается, когда локальное хранилище очищается от данных.

Даже если Sisyphus.js использовался для формы, вы можете применять его для другой формы. В данном случае скрипт не будет создавать дополнительного экземпляра и будет использовать те же опции.:

// Сохраняем данные формы form1 каждые 5 секунд
$('#form1').sisyphus( {timeout: 5 } );

…

// Если нужно сохранять данные второй формы
$('#form2').sisyphus( {timeout: 10} )

// Теперь данные будут сохраняться в обеих формах каждые 10 секунд

Значения опций можно изменять в ходе работы:

var sisyphus = $('#form1').sisyphus();

…

// Если вы решите, что сохранять данные по таймеру лучше
$.sisyphus().setOptions( {timeout: 15} );

…

// Или
sisyphus.setOptions( {timeout: 15} );

 

Что нужно для работы плагина

Требования: Sisyphus.js требует для работы jQuery версии 1.2 или выше.

Поддержка браузерами:

  • Chrome 4+,
  • Firefox 3.5+,
  • Opera 10.5+,
  • Safari 4+,
  • IE 8+,
  • Также работает на Android 2.2. Другие мобильные платформы не тестировались.

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/orPupHawiwc/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Автосохранение данных, введенных в поля формы | | 2012-06-19 12:01:17 | | Статьи Web-мастеру | | Какую задачу будем решать?Оказывались ли вы когда-нибудь в такой ситуации: нужно заполнить длинную форму с большим количеством полей или написать эмоциональный и вдохновляющий комментарий, а когда | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: