@evgen9586
Backend-dev. Лублу Enterprise и не люблю понты)

Как реализовать некоторый аналог сессий на JS?

Я бы использовал php-шные сессии и нет проблем, но данные находятся на стороне клиента и приходят аяксом от сервера.

Приходит вёрстка со списком ноутбуков и у каждого есть кнопка добавить в сравнение. По клику она должна закидывать ID ноутбука в массив + счётчик на странице "Товаров в сравнении" должен увеличиваться на 1 при каждом добавлении элемента в массив. Но не в этом сложность. Список товаров в сравнении не должен пропадать при переходе на другую страницу. Например на карточку товара. Там тоже есть такая же кнопка Добавить в сравнении + там будет слайдер из похожих ноутбуков у которых тоже есть такая кнопка.

Очищаться список сравнения должен либо по времени - день например, либо по клику Очистить список сравнения.

Реально ли реализовать такое в реалиях js? Я понимаю, что через сессии это делается за 20 минут, но я не могу их использовать
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 4
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
localStorage
Само не удаляется, но вы можете сделать в сохраняемом объекте поле "время", и при получении значения, смотрите, если срок годности истек, не используете и удаляете.
Ну, или кукисы.
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Вполне можете при добавлении ноутбука в клиенте отправлять эти данные и на сервер, там хранить в сессии и при загрузке страницы отдавать массив уже отобранных.

Иначе, как уже посоветовали, в localStorage:
// при добавлении ноута в коллекцию
localStorage.setItem('laptops', JSON.stringify( laptopArray ));

// при рендере страницы после перехода
var laptopArray = JSON.parse(localStorage.getItem('laptops')) || [];
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Я где то пропустил момент где описывается почему нельзя хранить все это в сессии? Довольно стандартная задача, не требующая каких-либо фантастических технологий. 2 яваскрипта с аяксом и пару строчек на пхп.
Ответ написан
Stalker_RED
@Stalker_RED
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы