Хорошо работающий метод для автоматического сохранения и повторного заполнения большой формы ASP.NET - PullRequest
2 голосов
/ 01 марта 2011

Мой вопрос касается высокопроизводительного способа реализации автосохранения в приложении ASP.NET 4.0 WebForms.

Я много читал об использовании различных плагинов автосохранения jQuery, но все оникажется, лучше всего использовать для минимальных элементов ввода.И я не нашел решения, которое снова заполнило бы форму ASP.NET, когда пользователь вернется в форму.

У меня есть FormView с большим количеством элементов, а также вложенные списки и формы.,Использование LinqDataSource для заполнения FormView и его дочерних элементов.

Веб-сервер - это IIS 7. БД - это SQL Server через Linq to SQL, и у меня есть доступ к MSMQ или любым другим необходимым компонентам сервера.

У меня естьреализовано автоматическое сохранение с использованием UpdatePanel с элементами формы, установленными в AutoPostBack, и небольшим количеством настраиваемого JavaScript, чтобы асинхронные запросы были последовательными.Это сделано для того, чтобы избежать ошибок параллелизма в Linq to SQL.Каждая асинхронная запись UpdatePanel сохраняет всю форму в черновик таблицы в SQL Server.Это не очень элегантно, но работает - медленно!

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

Так что теперь я думаю, что мне нужно:

  1. Оставьте тот же метод, заполните сущность linq из формы и сохраните ее в MSMQ.Затем я бы извлек это и сохранил его, когда пользователь отправляет форму (или, возможно, в конце сеанса, или когда он снова входит в систему в следующий раз);или
  2. Используйте что-то вроде https://github.com/nervetattoo/jquery-autosave/ и сохраните данные сериализованной формы в MSMQ.Это было бы довольно быстро, но проблема в том, что я не уверен, как вернуть данные в форму ASP.NET, когда пользователь возвращается к форме в последующих сеансах.

У меня естьтакже подумал о попытке сохранить только входное значение формы «отправки» на каждом посте обратно.Я мог бы сделать это в словаре и вести словарь в MSMQ.

Кстати, я не могу использовать Cache или Session, потому что я должен обеспечить сохранение данных формы, даже если пользователь закрывает браузер.Поэтому мне нужно что-то более надежное.

Очень интересует ваше мнение - всем очень благодарна за помощь!

Приветствия ..

1 Ответ

0 голосов
/ 01 марта 2011

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

Использование обычной одной UpdatePanel на странице для всей формы (элементы управления не внутри нее, внутри нее только элемент управления таймером или кнопочный элемент управления), не требовали от меня выполнения каких-либо действий с последовательным JS или около того. Я думаю, что вы делаете автосохранение "очень" часто, может быть? 30-120 секунд должно быть хорошо для большой формы.

Обычно у вас есть черновики в MSMQ или DB или что-то еще, если существует, когда пользователь начинает работать с формой, заполните ее, если нет, работайте нормально.

Плагин jQuery тоже кажется очень интересным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...