Десериализия или создание объекта заново, что быстрее?

  • Автор темы Grey_EM
  • Дата начала

Grey_EM

Guest
Десериализия или создание объекта заново, что быстрее?

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

.des.

Поставил пиво кому надо ;-)
меня самого давно интересовал этот вопрос :) а вот до тестов никак руки не доходят :( по моему разницы особой не будет.. но сохранение в сессии все же удобнее и для тебя и для пользователя..
Я за сериализацию :)
 

ForJest

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

Oleg Uskov

Guest
Да через сессию лучше, но есть ньюансы:
1. Если пользователь несколько раз запустит твой Мастер (откроет несколько окон), нужно различать какой объект Заказ к какому окну отностися. Выход - через url передавать какойто id идентифицирующий объект Заказ.
2. Если поьзователь не пройдет Мастер до конца а закроет окно, объект Заказ так и будет жить в сесии, пока он просто будет лазить по сайту, а это некоторые ресурсы.
 

Roman_P

Guest
я недавно делал что то подобное
имхо:
Автор оригинала: Oleg Uskov
Да через сессию лучше, но есть ньюансы:
1. Если пользователь несколько раз запустит твой Мастер (откроет несколько окон), нужно различать какой объект Заказ к какому окну отностися. Выход - через url передавать какойто id идентифицирующий объект Заказ.
ничего не мешает хранить id также в сессии
2. Если поьзователь не пройдет Мастер до конца а закроет окно, объект Заказ так и будет жить в сесии, пока он просто будет лазить по сайту, а это некоторые ресурсы.
так это наоборот лучше с другой стороны, так как к нему можно будет в любое время вернуться.
 

Alien

Новичок
Гонять через http хуже хотя бы потому что их надо:
1 - гонять через браузер -> лишний траффик, лишние задержки
2 - прикручивать подписи и проверки, чтобы убедится что он не нашаманил
3 - ты не знаешь что же он там наwizard-ил, пока не нажмет финальную кнопку, а тебе это когда нить потребуется (вопрос в духе "с какого шага пропадает больше всего посетителей?")

ну и тп
 

Максим Деркачев

Guest
Сессия - это частный случай сериализации/десериализации.
 

Grey_EM

Guest
Автор оригинала: ForJest
Лучше через сессии. Хотя бы потому, что ты на каждом шаге будешь иметь достоверные данные предыдущих шагов. В случае передачи через URL или поля формы всегда есть вероятность злонамеренного изменения данных.
Невероятное единодушие :)
Вот и хорошо.
 

RU$LAN

Guest
Однозначно сессии потому как:

1 post from .des.
2 отсутствие паровоза в адрес.строке

2Oleg Uskov :

to q1:IMHO если я не обшибаюсь есть такое понятие как ид.сесии
to q2: а время жизни сесси что уже нельзя менять?
а еще есть Жабаск(Не путать с Вуглускр'ом:) на котором можно отследить закрытие окна и вывести махонькое оконце с благодаствием за посещение или же отчет о сделанных покупках етс. и там же сделать
PHP:
session_unregister();
PS: в одной из фотогалерей я так и сделал : пошарился юзр по фтг свалил дальше по сайту бродить потом вернулся а тут ему сервис - помнят о нём где остановился, что смотрел - так что тут еще стоит покопаться
wbr 2 all :)
PS OFT:как хорошо что 8 марта всего лишь раз в году %-)
 
Сверху