Когда я должен использовать сеанс PHP, локальное хранилище браузера или параметры объекта JavaScript?

Когда уместно использовать множество различных способов, которыми современные приложения на основе AJAX хранят данные? Я надеюсь на некоторые конкретные рекомендации, которые я могу дать разработчикам. Вот то, что я вижу до сих пор, и это становится беспорядочным.

Сеанс на стороне сервера PHP: Данные сеанса PHP, вероятно, являются самым старым способом хранения информации на основе сеанса. Я часто передаю параметры через различные вызовы AJAX из объектов JavaScript/jQuery для сохранения в сеансе PHP. Я также возвращаю объекты данных (некоторую информацию о сеансе) обратно в качестве ответа/результата методам JavaScript/jQuery.

Локальное хранилище на основе браузера. Оно часто используется для хранения данных, которые должны сохраняться во внешнем интерфейсе, но иногда я не уверен, когда его использовать. Одним из хороших способов использования было хранение информации о геолокации из navigator.geolocation. Я хранил здесь много информации, но я не уверен, что это разумно. Кажется, что срок его действия никогда не истекает, но его можно удалить из ресурсов.

Объект JavaScript с параметром(ами) конфигурации: я создавал объекты JavaScipts с помощью метода инициализации, который устанавливал параметр "настройки". Это очень полезно, так как я обычно строю его из данных, переданных из PHP. С помощью jQuery Mobile эти данные могут даже сохраняться от страницы к странице и изменяться в ответах на запросы AJAX.

Итак, какие рекомендации вы бы дали по использованию каждого из них?


person jjwdesign    schedule 26.06.2014    source источник
comment
Если вы хотите, чтобы это было на сервере или это связано с безопасностью, используйте session. Если вы хотите, чтобы он сохранялся на стороне клиента и сохранялся даже тогда, когда пользователь больше не находится в сети, используйте локальное хранилище на основе браузера.   -  person developerwjk    schedule 26.06.2014
comment
Третий вариант. Это зависит от источника параметров конфигурации, поэтому этот метод работает на другом уровне по сравнению с предыдущими и не является вариантом выбора между ними.   -  person doc    schedule 07.07.2014


Ответы (1)


Данные сеанса PHP НЕ являются постоянным хранилищем данных, так как при уничтожении сеанса браузера вы потеряете данные. Это полезно, если вы не хотите постоянно хранить данные.

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

Любой другой метод, такой как объекты, не является постоянным хранилищем данных.

Другое постоянное хранилище, связанное с браузером, — это COOKIES (если срок их действия не истекает при закрытии сеанса), IndexedDb (проверьте здесь поддержку текущего браузера http://caniuse.com/#feat=indexeddb).

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

Например, вы будете использовать LocalStorage, если вы храните закладки, а если вы храните точки геолокации, вы используете файлы cookie, и срок их действия истекает после закрытия браузера или приложения.

Если вы входили в учетную запись с помощью PHP, лучше всего создать сеанс PHP и даже изменить время ожидания сеанса, когда пользователь нажимает («Запомнить меня»).

Это лишь пара примеров из тысячи возможных потребностей.

person Tasos    schedule 16.07.2014
comment
Я смущен тем, что sessionStorage находится в элементе проверки хрома - person Ali; 11.02.2021