Мой вопрос касается высокопроизводительного способа реализации автосохранения в приложении 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.Это не очень элегантно, но работает - медленно!
Проблема в том, что поездка туда и обратно слишком медленная.Это приводит к тому, что изменения формы, сделанные во время сохранения, не сохраняются, а также форма возвращается назад к сохраненному элементу, если пользователь за это время прокручивал.
Так что теперь я думаю, что мне нужно:
- Оставьте тот же метод, заполните сущность linq из формы и сохраните ее в MSMQ.Затем я бы извлек это и сохранил его, когда пользователь отправляет форму (или, возможно, в конце сеанса, или когда он снова входит в систему в следующий раз);или
- Используйте что-то вроде https://github.com/nervetattoo/jquery-autosave/ и сохраните данные сериализованной формы в MSMQ.Это было бы довольно быстро, но проблема в том, что я не уверен, как вернуть данные в форму ASP.NET, когда пользователь возвращается к форме в последующих сеансах.
У меня естьтакже подумал о попытке сохранить только входное значение формы «отправки» на каждом посте обратно.Я мог бы сделать это в словаре и вести словарь в MSMQ.
Кстати, я не могу использовать Cache или Session, потому что я должен обеспечить сохранение данных формы, даже если пользователь закрывает браузер.Поэтому мне нужно что-то более надежное.
Очень интересует ваше мнение - всем очень благодарна за помощь!
Приветствия ..