Лучшая практика для постоянных данных сеанса, чтобы минимизировать обратную передачу сообщений - PullRequest
0 голосов
/ 16 ноября 2010

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

Я занимаюсь разработкой в ​​ASP .Net 3.5 с jQuery, JSON и базой данных MS SQL.

На мой взгляд, есть несколько возможных способов сделать это.

  • Выполнить полный пост обратно на сервер.Сохраняйте каждый выбор, обновляйте элементы управления страницы соответствующим образом.
  • Отправляйте выборки с помощью Ajax-запроса обратно на сервер и обновляйте отображение элемента управления.
  • Создайте все функции в JavaScript и сохраните все значения в файле cookie сеанса.Ничего не отправляется на сервер до тех пор, пока пользователь не решит зафиксировать.

Я действительно хочу рассмотреть производительность здесь, но я не хочу заканчивать тысячами строк кода JavaScript ..

Любые предложения по лучшей реализации с за и против?

Приветствия, Стефан

Ответы [ 2 ]

1 голос
/ 16 ноября 2010

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

I 'd используйте AJAX для отправки обратно на сервер (с постепенным понижением до полной записи для браузеров, которые не могут с этим справиться), затем храните информацию в энергозависимой памяти там, т.е. не в базе данных.Запишите это в базу данных только тогда, когда вам нужно.Это очень легко сделать в Java (вы можете связать информацию с сеансом), поэтому я предполагаю, что у ASP.net тоже есть способ сделать это.

0 голосов
/ 16 ноября 2010

Все три варианта выглядят хорошо для меня.Однако возникает вопрос: сколько трафика вы ожидаете?

Каждый из представленных вариантов лучше подходит для данного сценария.Допустим, у вас будет ОЧЕНЬ много (тысячи тысяч) пользователей и не так много оборудования, тогда вам, вероятно, следует постараться свести к минимуму количество запросов к вашему приложению и максимально сохранить данные на клиенте перед отправкой на сервер,

Если это приложение меньше по размеру, то использование Session или другого центрального хранилища базы данных будет в порядке.

Все зависит от ваших требований.

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