Сохранение Ajax Form Data Best Practices - PullRequest
5 голосов
/ 15 февраля 2010

Мне просто интересно, каковы общие рекомендации по сохранению данных в Ajax Forms.Например, в Spree ECommerce каждый раз, когда вы изменяете значение в списке объектов (например, вы меняете количество определенного элемента в ордере), он обновляет базу данных с помощью вызова Ajax.

Лучше ли, чтобы пользователь вручную нажимал «Сохранить» или «Обновить», когда они закончили редактирование формы, или, если вы можете (вы установили альтернативу ajax), просто автоматически сохранять данные каждый раз, когда что-тоизменения?

Похоже, что Stack Overflow Careers каждые несколько секунд сохраняет «черновик» вашего профиля, используя какой-то элемент ajax.

Таким образом, кажется, что есть 3 способа сохранить данные вФорма, если у вас есть Ajax собирается:

  1. Пользователь нажимает кнопку, сохраняет все данные сразу, не хорошо, если данные важны
  2. Сохранять каждый интервал времени
  3. Сохранять каждыйизменить

Что порекомендуете?

Ответы [ 3 ]

5 голосов
/ 15 февраля 2010

Хороший вопрос. Я не думаю, что существует универсальная лучшая практика, которая охватывает все ситуации. Как правило, чем более дружественным является ваше решение, тем выше сложность реализации, тем меньше вероятность того, что решение будет изящно унизительным (если вы не были очень, очень осторожны).

Кроме того, есть последствия для любого подхода, который вы выбрали. Например, автоматическое сохранение периодически может , а не быть хорошей идеей, когда требуется существенная проверка данных. Пользователь может ввести некоторые данные и через несколько секунд получить сообщение об ошибке. Мгновенная обратная связь была бы гораздо более полезной для пользователя в такой ситуации, поскольку вполне возможно, что ввод, который привел к неудачной валидации, был, скажем, несколькими действиями назад, поэтому он может несколько запутать пользователя.

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

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

Итоговая рекомендация: создайте старые формы «щелкни, чтобы сохранить» и улучшите их, следя за тем, чтобы все не сломалось без JavaScript (если только у вас нет явного разрешения вышестоящего органа). Надеюсь, что это не все глупости.

1 голос
/ 15 февраля 2010

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

Я вижу проблемы на горизонте, только если вы примете стратегию автосохранения для формы.

0 голосов
/ 05 марта 2013

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

В глобальном.js:

var validate=false;
window.onbeforeunload = function() { if(validate) return "You made some changes, are you sure you want to leave?"; };

На странице формы (я сделал это в jquery):

$('input,textarea,select').change(function(){ validate=true; });
$('form').submit(function() { validate=false; });

BR!

...