2010-03-24 5 views
2

Хорошо, во-первых, речь идет не о формах, а о согласованной компоновке, когда пользователь исследует сайт.

позвольте мне объяснить:

Если представить себе (не AJAX) цифровой камеры, интернет-магазин, скажем, кто-то на участке DSLR и конкретизированы для просмотра камер в режиме галереи и порядка по цене. Затем они перейдут на страницу Компактной камеры. Было бы в интересах пользователей, если бы «взгляды», которые они выбрали, переносились на эту новую страницу.

Теперь, я бы сказал, используя сеанс - я ошибаюсь?

Есть проблемы с производительностью, о которых я должен знать в течение нескольких небольших сессионных варов (т.е. view = 1, orderby = price)?

+0

нет. не беспокойтесь. – SilentGhost

ответ

8

Говоря об исполнении, проблем с решениями не должно быть.

Некоторые вещи, которые должны быть рассмотрены, являются:

  • С GET, если URL получает копию вставили (в электронной почте или MSN), другой, кто получит URL будет иметь тот же GET параметры
    • Это хорошая вещь или нет?
  • С другой стороны, сессия не будет передаваться, если URL является копией вставили
    • что означает первый парень будет сказать другому «ключ, посмотрите на эту», и второй парень не увидит одну и ту же страницу ;; то же самое с закладкой, следует добавить.
  • GET специфичен для каждого URL
    • Хотя SESSION общего accross всех закладок пользователя
    • что означает просмотр с несколькими вкладками одновременно может вызвать проблемы, когда с помощью сеанса, если вы не заботиться о том
2

Я бы сказал, пользуйтесь обоими. Сохраните его в сеансе, но также поместите его в параметры получения страницы.

Почему? Таким образом, пользователь может переносить свои параметры со страницы на страницу, но они также находятся в URL-адресе, поэтому, если он отправляет результаты поиска своему другу, его друг видит их точно так же, как и он.

Нет, производительность сессии не ухудшится, помещая туда эти небольшие переменные. Если вы не храните монолитные массивы в своей сессии, то большая часть времени загрузки сеанса будет считываться с его носителя данных (файла, базы данных, memcache и т. Д.).

+0

Единственный минус $ _GET - уродливый url – dnagirl

+0

интересный, разве это не сделает сеанс излишним? – Haroldo

+0

@Haroldo Это зависит от того, что вы хотите. Когда вы создаете свои ссылки (для кнопки «следующей страницы» или тому подобного), у вас есть выбор, чтобы вытащить ее из $ _GET или сеанса. Если вы храните его в сеансе, вы можете сохранить настройки между посещениями (хотя для этого вы можете использовать db). – ryeguy

0

это субъективный вопрос, он будет работать в любом случае.

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

Однако аргумент для этого был бы, если бы они отметили это, они могут видеть разные вещи, если это было сделано с использованием $ _SESSION.

2

Вы должны использовать GET в своем случае.

В веб-разработке есть одно простое правило: каждая страница с различным контентом должна иметь свой собственный адрес. Таким образом, клиент может сохранить любую страницу в избранное, отправить ее в frend. Это боль внизу, и кто-то посылает вам ссылку на конкретную страницу, говорящую «Смотри!». но сайт использует фреймы, и вы приземляетесь на первой странице и не знаете, где искать.

Вы можете сохранить пользовательские настройки в своем профиле/cookie (не сеансе), но это должно быть отражено и в адресной строке.

Сеансы, используемые для совершенно разных целей, являются примеркой корзины покупок.

Смежные вопросы