Корректно ли использовать переменные сессии браузера для передачи массива в ajax обработчик?
Господа, я для передачи массива в обработчик ajax на стороне сервера использовал переменную сессии $_SESSION['cat_array'] для подгрузки контента на страницу, минуя javascript переменные. Выходит что в шаблоне PHP обращаюсь с запросом к БД и полученный массив с контентом сохраняю в сессию. Дальше работает только функция- обработчик при срабатывании условия js-скрипта при скроллинге экрана, которая укорачивает массив после вывода очередной его части
Я сделал это для того, чтобы при подгрузке контента каждый раз не обращаться в БД с запросами, а сделать это один раз вначале и порционно выводить контент, удаляя его из массива и пересохраняя в переменной сессии. Вообщем, не захотел использовать javascript переменные для хранения сериализованного массива. Подскажите, это хорошая практика и не будет ли проблем с какими либо браузерами при использовании переменных сессии?
Не знаю как другие, я лично ничего не понял из этого описания и без примеров кода. Одно могу сказать наверняка - данные, сохраненные в сессии, доступны только на сервере / для бекенда. На фронтенде браузер знает только об идентификаторе сессии, а не о конкретных данных в ней. Поэтому что, как и куда вы передаете - непонятно.
Игорь Воротнёв, приветствую. Спасибо, что откликнулся на вопрос. Все, что Вы пишете - логично и вопросов не вызывает. А в моем вопросе что не достаёт? Давайте приведу более развёрнуто пример моего опыта:
Я раньше переменные сессии не применял при разработке сайтов, но пришло время воспользоваться. Стояла адача: сделать Ajax подгрузку категорий товаров (терминов таксономии). Я формирую запрос к БД через функцию получения терминов и сохраняю результат в массив. Дальше вывожу первые 20 и удаляю их из массива. Остаток надо передать обработчику на стороне сервера через Ajax, когда сработает событие при пролистывании экрана. Если бы речь шла о запросе получения постов, то я бы передал переменные текущего query запроса через переменную скрипта, объявленного в коде шаблона php. Не суть. Чтобы не передавать в тело скрипта массив, я решил сохранять его в переменной сессии и в Ajax обработчике после вывода очередных 20 позиций, удалять их из массива и снова перезаписывать в переменную сессии и тд пока не будут выведены на экран все записи. Так понятнее?
Я засомневался в надежности сохранения массива в переменной сессии и может кто прибегал к подобным алгоритмам работы и что посоветует как альтернативу моему решению? Но пока все крутится и нареканий нет.
Станислав Шабалин, Вот вообще не помогли :) Нет, я конечно не исключаю того, что у меня недостаточно оперативной памяти в мозгу, чтобы загрузить туда вот этот поток сознания и полностью его распарсить. Может быть, просто ленив. Но судя по отсутствию реакции на ваш вопрос от других людей, проблема явно не на моей стороне. Перестаньте тараторить, сформулируйте текст пошагово, списком. Снабдите кусками кода. Возможно тогда что-то прояснится. Потому что с вот этим вот
переменные сессии не применял при разработке сайтов
формирую запрос к БД через функцию получения терминов
я бы передал переменные текущего query запроса через переменную скрипта, объявленного в коде шаблона php
в надежности сохранения массива в переменной сессии и может кто прибегал к подобным алгоритмам работы
Игорь Воротнёв, скорее сомневаюсь в правильности выбора способа хранения и обработки массива через $_SESSION. В вопросе же все вроде как ясно и на понятном языке.
Я не вижу смысла выкладывать куски кода, полагая что это не заставит людей в нем разбираться. Если бы знали ответ, то ответили бы. Возможно нет тех, кто с этим сталкивается часто. Нет - нет, значит буду юзать переменные сессии наравне с переменными в PHP, а если заглючит что, — значит буду дальше ломать голову. Все хорошо ;)