Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.01.2016, 09:33
Интересующийся
Отправить личное сообщение для melst Посмотреть профиль Найти все сообщения от melst
 
Регистрация: 26.11.2015
Сообщений: 28

Сообщение от ivt22 Посмотреть сообщение
а мне как раз нужно что-то, что сохранялось бы при обновлении страницы и при переходе на другую страницу, что бы я мог таскать список товаров за пользователем, я новичек и книжку по JavaScript только начал читать, а задачу мне срочно нужно как-то решить. Потому что срок пробной версии Битрикса заканчивается через 4 дня и если я не успею клиенту показать рабочий вариант, то он не оплатит Битрикс. И тогда месяц работы коту под хвост. Вот я и прошу помощи, потомучто самостоятельно я никак не успеваю разобраться.
Вот я как раз о том же говорю. Я использую сессию на клиенте, но как я понял можно и каждый раз запрос делать и при нажатии на кнопку, и при обновлении страницы. С помощью sessionStorage у меня работает. Но вот laimas указывает, что это лишнее.
Ответить с цитированием
  #12 (permalink)  
Старый 15.01.2016, 11:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от melst
А как быть с данными которые получены асинхронно при обновлении страницы или переходе на другую? Я sessionStorage только для этого использую.
Сообщение от ivt22
а мне как раз нужно что-то, что сохранялось бы при обновлении страницы и при переходе на другую страницу, что бы я мог таскать список товаров за пользователем
Сессия, которую можно стартовать на сервере и использовать посредством супеглобального массива $_SESSION тогда по вашему для чего?

melst,

session_start();
if (!isset($_SESSION['id'])) {
    $_SESSION['id'] = array();
    
}
array_push($_SESSION['id'], $id);


зачем тогда на сервере, если вы еще дублируете это на клиенте в sessionStorage?

Сессия по умолчанию живет 24 минуты, если в течении этого времени будет запрос от клиента, то смерть будет отложена на следующие 24 минуты, и т.д. Другими словами, если корзина хранится в сессии, то никуда она не пропадет при переходах между страницами, и пофигу каким образом данные для корзины получены от клиента, асинхронным запросом или нет. Только добавление товаров в корзину на сервере как изложено выше... ну в общем это не корзина.

sessionStorage будут полезна тогда, когда у клиента будут отключены куки и идентифицировать сессию клиента не получится.

ivt22, я уже писал, что куки можно использовать, и как сессионные, и как действующие установленное время. Только в Битриксе уже есть готовое, что касается продажи, корзины и прочего что с этим связано.
Ответить с цитированием
  #13 (permalink)  
Старый 15.01.2016, 13:48
Интересующийся
Отправить личное сообщение для melst Посмотреть профиль Найти все сообщения от melst
 
Регистрация: 26.11.2015
Сообщений: 28

Сообщение от laimas Посмотреть сообщение
Только добавление товаров в корзину на сервере как изложено выше... ну в общем это не корзина.
Ну вот... А что есть корзина? Это я привел пример того как записываю каждый id в сессию. Кроме этого, конечно есть и полная выборка из БД. Проверки различные пока не делал. Костяк хочу сначала сотворить.
Ответить с цитированием
  #14 (permalink)  
Старый 15.01.2016, 14:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от melst
А что есть корзина?
Корзину, ее код, будет определять в том числе и способ добавления товара: по количеству - либо по одному одного товара, либо можно добавлять несколько одного и того же товара, по групповому/одиночному добавлению - либо можно выбрать группу различных товаров в категории на странице, либо только один товар.

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

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

Если ли такой товар в корзине или нет, это вопрос резиновый, ибо если есть еще не означает, что отказать в доступе к корзине, ведь у товара может просто изменяться количество товаров в ней. А вот исключить из запроса клиента идентификаторы товаров которые уже есть в корзине надо, и если в запросе остались после этого ключи, значит это добавляемые товары, и по ним делается запрос в базу.
Ответить с цитированием
  #15 (permalink)  
Старый 15.01.2016, 21:09
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

я написал этот скрипт (но показывать его не буду, ну он уж очень мне не нравится в плане свой поддерживаемости) в localStorage при клике я помещал name продукта... тоесть помещал строку, но сейчас пишу скрипт где будет помещаться обьект но переобразованный в строку через JSON, а из localStorage я читаю его как обьект, это наиного удобнее, так как получаешь сразу набор данных : цена товара и описание, название продукта... Так с данными в localStorage намного легче работать... попробуй сам напиши...

Последний раз редактировалось DynkanMaclaud, 15.01.2016 в 21:12.
Ответить с цитированием
  #16 (permalink)  
Старый 16.01.2016, 01:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от DynkanMaclaud
Так с данными в localStorage намного легче работать...
Не путайте корзину товаров, которую нужно класть в сессию, а не в локальное хранилище, с базой товаров, которую уж никак в локальное хранилище помещать нельзя.
Ответить с цитированием
  #17 (permalink)  
Старый 16.01.2016, 11:39
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

laimas,
Вы в своем примере ориентированны на php и БД, да список товаров на странице нужно получать из БД, но корзину товаров для пользователя можно хранить в локальном хранилище (а почему её там нельзя хранить?))

Последний раз редактировалось DynkanMaclaud, 16.01.2016 в 11:43.
Ответить с цитированием
  #18 (permalink)  
Старый 16.01.2016, 12:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от DynkanMaclaud
корзину товаров для пользователя можно хранить в локальном хранилище (а почему её там нельзя хранить?)
Я писал, что нет смысла хранить товары в сессионном хранилище на клиенте, если есть сессия на сервере, добавление товара и изменение корзины обязательно через запрос сервера делается.

Сессия/сессионное хранилище клиента хорошо для корзины тем, что передумал покупатель, просто ушел, и не останется мусора за ним. Работая же с локальным хранилищем нужно очищать его, все таки не есть хорошо забивать его чем непопадя и кому угодно.

Что касается "с данными в localStorage намного легче работать", это вздор, гораздо проще выглядят операции с корзиной на сервере, а если в смысле доступа к ним, то нет ни каких отличий.
Ответить с цитированием
  #19 (permalink)  
Старый 16.01.2016, 13:11
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

laimas,
возможо тот человек который создал эту тему не знает основ php, ну а тут надо параметры отправить на сервер эти параметры нужно обработать далее закинуть в сесссию и сделать это все через ajax... а может просто легче ему на клиенте все это хранить?)) тут знаний чистого js достаточно будет))))
Ответить с цитированием
  #20 (permalink)  
Старый 16.01.2016, 13:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать проверку на display: block; ufaclub jQuery 3 22.12.2013 19:21
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 21:32
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как удолить cookie через javascript shtopor Javascript под браузер 5 22.03.2011 23:10
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06