Обработка ошибок, стратегия истечения сеанса в приложении ajax asp.net - PullRequest
3 голосов
/ 27 октября 2009

Есть ли у кого-нибудь какие-либо стратегии или идеи для общей обработки ошибок и истечения времени сессии в большом приложении ajaxy? В традиционном веб-приложении, когда все было отправлено или получено, легко обрабатывать ошибки и истечение срока сеанса и представлять дружественные сообщения пользователям. Не так много с современными веб-приложениями ajaxy. Мое веб-приложение использует панели обновления ASP.Net Ajax и вызовы WCF с разных страниц. Любой из этих вызовов ajax может вернуть ошибку или сеанс пользователя может быть истек. То, что я ищу, - это отдельный клиентский компонент или что-то, что может распознавать при возникновении ошибки и показывать пользователю дружественное сообщение или распознавать по истечении времени сеанса и направлять пользователя на страницу входа. Что люди сделали для решения этой проблемы?

1 Ответ

0 голосов
/ 27 октября 2009

Переключатель сессии на всех! Эта рекомендация имеет 2 аспекта.

  1. AJAX - не такая быстрая технология, поэтому отключение сеанса в соответствии с рекомендацией Microsoft сокращает время рендеринга на стороне сервера
  2. Сессия, которая имеет дело с одновременно открытыми 2 страницами, взламывает ajax на обеих из них.

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

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

  1. Данные, которые постоянно передаются между клиентом и сервером (например, аналог сеансового ключа). Сделайте свой собственный ключ и сохраните в скрытых полях или куки. ViewState также хорош, но для оптимизации я предпочитаю контролировать, что именно сохраняется.
  2. Данные собираются между несколькими страницами, хороший пример - мастер. Накопление данных от пользователя в БД или в профиле пользователя (сохраняется в БД). Для моего проекта мы разработали специальную таблицу TempStorage, где пользователь сохранил данные мастера, и если по какой-то причине пользователь не завершил все шаги в течение 3 дней, таблица очищается заданием.
...