Добавление некоторых пользовательских переменных сеанса в объект JavaScript - PullRequest
0 голосов
/ 02 января 2009

В настоящее время у меня есть собственный класс обработчика сеанса, который просто основан на функциональности сеанса php (и связан с некоторыми таблицами mySQL).

У меня есть множество переменных сеанса, которые лучше всего подходят для моего приложения (в основном хранятся на стороне сервера). Хотя я также использую jQuery для улучшения юзабилити внешнего интерфейса, и мне было интересно, будет ли неправильная подача некоторых переменных сеанса (некоторых основ и некоторых идентификаторов предпочтений просмотра) в объект JS.

В настоящее время, если мне нужно получить доступ к какой-либо из этой информации на внешнем интерфейсе, я делаю ajax-запрос на страницу php, специально написанную для предоставления соответствующего ответа, хотя я не уверен, является ли это наилучшей практикой (фактически я почти уверен, что это создает избыточное количество запросов Ajax).

Кто-нибудь получил какие-либо комментарии по этому поводу? Будет ли это наилучшим способом предоставления такой информации на стороне клиента?

Ответы [ 2 ]

0 голосов
/ 02 января 2009

Я бы сказал, что это определенно излишество AJAX. Эти сеансы закрыты или важны, чтобы их не показывать посетителям? Просто чтобы выбросить это там; cookie - самый простой способ, когда дело доходит до обоих: наличие данных в объекте javascript делает его легко читаемым посетителю, а когда дело доходит до того, включены или нет файлы cookie, без файлов cookie у вас все равно не будет сеансов .

http://www.quirksmode.org/js/cookies.html является хорошим источником информации об обработке файлов cookie в JS и включает две функции для чтения и записи файлов cookie.

0 голосов
/ 02 января 2009

Я действительно думаю, что это зависит от многих факторов. У меня всегда есть «преждевременная оптимизация ...» в затылке.

В прежние годы я бросал каждую маленькую идею, которая приходила мне в голову, в приложение. Это часто приводило к тому, что «я сделал это круто, но я не потратил время, чтобы полностью понять проблему, которую пытаюсь решить; была ли проблема в любом случае?»

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

Другими словами:

  1. Как часто вам нужен доступ к этой информации с различных типов загруженных страниц (потому что, если вы загружаете информацию один раз без перезагрузки пользователя, вероятно, в любом случае нет смысла ее повторно загружать), умноженной на число одновременных клиенты?

  2. Если вы запишите информацию в файл cookie на стороне клиента для быстрого доступа к JS, может ли быть причинен вред вашему приложению в случае злоупотребления (изменение без согласия приложения)? Замените «JS» и «cookie» без какого-либо автономного хранилища, как предлагает WHATWG, если применяется № 1.

«Быстрый» подход меня устраивает, потому что зачастую нет больших инвестиций в исследования до разработки. Если вы сделали это осторожно ... но тогда вы, вероятно, уже знаете этот ответ;)

Как 3. вы всегда можете отправить HTML-код своему клиенту, включая данные, которые вам нужны в JS, возможно, это может работать в вашем случае. Будет интересно посмотреть, какие еще предложения придут!

В качестве примечания: у меня также были сессии PHP, хранящиеся в БД, пока я не переместил их в memcached (alert: это кэш, а не постоянное хранилище, поэтому, может быть, это не очень хорошая идея для вашего случая живя с этим, я просто уверен, что он всегда выполняется), чтобы реализовать среднее падение 20% запросов к базе данных и, следовательно, 90% запросов на запись. И я еще даже не использовал какой-нибудь модный Ajax, только количество одновременно работающих пользователей.

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