[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сохранение данных после перезагрузки страницы
Эдик
Здравствуйте.
Каким образом можно сохранить шаги, которые пользователь уже прошел(для построения дерева переходов), те сохранить опции, которые пользователь уже выбрал, после перезагрузки страницы?
можно посмотреть http://gti.sion.by
Изначала использовал hidden-ы, но после перезагрузки все значения полей обнуляются.
Через сессии не получится, потому что главный файл, куда все подгружается index.php, а исполняемый work.php.
Отдавать из work.php сразу навигатор вместе с основным контентом не получится, потому что: при построении дерева и рядом с ним табоицы товаров навигатор строиться и в блоке дерева, и в блоке таблицы, а если отдавать только в блок дерева, то он некрасиво смотриться.
Вариант через куки остается только.... Или как еще можно?



Спустя 1 минута, 3 секунды (23.12.2011 - 14:23) inpost написал(а):
Эдик
Куки.

Спустя 28 минут, 30 секунд (23.12.2011 - 14:51) Эдик написал(а):
А если они отключены у пользователя?

Спустя 2 минуты, 48 секунд (23.12.2011 - 14:54) Guest написал(а):
Цитата (Эдик @ 23.12.2011 - 11:51)
А если они отключены у пользователя?

Пиши пройденные шаги в файл, а потом читай biggrin.gif

Спустя 4 минуты, 55 секунд (23.12.2011 - 14:59) Эдик написал(а):
Блин круто. А если одновременно 100 посещений? А как понять что пользователь ушел и когда нужно удалить файл?

Спустя 5 минут, 12 секунд (23.12.2011 - 15:04) inpost написал(а):
Эдик
И часто ты встречаешь тех, у кого он отключен?
Если отключен у 0.001%, то не надо сохранять, пусть заново шаги проходит.

Спустя 5 минут, 35 секунд (23.12.2011 - 15:10) Эдик написал(а):
inpost, на да, что-то в этом есть =)
А что за наезды на тебя, кому ты не угодил?
Тут еще есть один вариант, точнее 2.
Если просто возвращать не готовый html, а массив пользовательских данных и сам навигатор, а потом на клиенте его разбирать и навигатор туда, а контент сюда? Это как я понимаю нужен формат типа json? По быстродействию и по здравому смыслу лучше через куки или json?



Спустя 1 минута, 46 секунд (23.12.2011 - 15:12) inpost написал(а):
Эдик
Да есть один тролль, с головой не дружит. Я его баню, он снова приходит, а я снова баню. Это как лавочки на улице, он сам платит за их ремонт из своих карманных средств, а потом идёт и ломает. В голове их одни опилки.

Спустя 4 минуты, 8 секунд (23.12.2011 - 15:16) killer8080 написал(а):
Цитата (inpost @ 23.12.2011 - 14:04)
И часто ты встречаешь тех, у кого он отключен?

Около 10%, в большинстве случаев юзеры и слова такого не знают: "куки", просто поставили какой нибудь тупой антиспай. Незнание механизма угрозы порождает параною. Многие ламеры думают что от туда приходят вирусы. rolleyes.gif
Эдик я так и не понял, в чем проблема с сессиями?

Спустя 1 минута, 54 секунды (23.12.2011 - 15:18) Эдик написал(а):
Он наверное и в гости ходит по утрам =)
Так как тут лучше будет, через куки или отправлять массив и разбирать его(если так вообще возможно)?

Спустя 7 минут, 53 секунды (23.12.2011 - 15:25) Эдик написал(а):
killer8080, ну во-первых придется в разметку засовывать функцию для построения ссылок, но это ерунда.
Проблема такая : вот например пользователь на 1 шаге :
он жмякнул на ссылку, в work.php передались параметры, объявились $_SESSION['step'],$_SESSION['id'],$_SESSION['name'], потом дальше операции, ну и в конечном итоге include(./tpl/model.htm). Но функция в index.php делает пересчет только после перезагрузки страницы, и она не увидит эти новые $_SESSION

Спустя 27 минут, 21 секунда (23.12.2011 - 15:53) sergeiss написал(а):
Цитата (Эдик @ 23.12.2011 - 15:22)

Через сессии не получится, потому что главный файл, куда все подгружается index.php, а исполняемый work.php.
Отдавать из work.php сразу навигатор вместе с основным контентом не получится, потому что: при построении дерева и рядом с ним табоицы товаров навигатор строиться и в блоке дерева, и в блоке таблицы, а если отдавать только в блок дерева, то он некрасиво смотриться.

Ничё не понял из этой фразы....

И также не понял, ГДЕ ты видишь проблему сначала всё в одном файле сделать, и обработку, и форму, а потом уже идти дальше, в другой скрипт, когда введены все корректные данные? Там всё прекрасно можно сделать, легко и просто.

Спустя 8 минут, 42 секунды (23.12.2011 - 16:01) Эдик написал(а):
sergeiss, ну смотри, фух:
что мне нужно сделать : мне нужно сделать выбор товара, пройдя перед этим 5 шагов по подбору параметров. Переход реализовать технологией ajax. При переходе к след шагу добавлять к навигатору ссылку на уже пройденный шаг(типа хлебные крошки или навигатор), при перезагрузке вручную страницы чтобы это навигатор не терялся.

что у меня есть: есть 2 файла : index.php и work.php
index.php -сам файл, содержащий библиотеки, разметку, функции для реализации запросов и вывод их в соотв блок.
work.php - исполняемый файл, куда приходят данные и где они обрабатываются и возвращаются контент в index.php

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

Спустя 5 минут, 47 секунд (23.12.2011 - 16:07) Эдик написал(а):
изначально я делал так: в index.php сохранял все в сессии, вызывал функцию, формировал навигатор и возвращал его на главную. Все отлично. Но!
Вот такой пример:

http://tank.by/component/jl_catalogparts/?...uel=1&year=1975

Но получается я могу возвратить навигатор вместе с основным контентом, через include. И возвратив навигатор с деревом, я ограничу его ширину шириной блока для дерева, и он очень некрасиво будет разделен на 3 строки

Спустя 41 минута, 54 секунды (23.12.2011 - 16:49) sergeiss написал(а):
Прочитал... По-моему, тут по-любому просится сессия. Иначе ты просто не обеспечишь восстановление после перезагрузки страницы. И какая разница - аякс или без него? Принципиальной не вижу. Всё равно сессия smile.gif

Цитата (Эдик @ 23.12.2011 - 17:07)
Но получается я могу возвратить навигатор вместе с основным контентом, через include. И возвратив навигатор с деревом, я ограничу его ширину шириной блока для дерева, и он очень некрасиво будет разделен на 3 строки

А вот это не понял до конца... Получается, что у тебя дизайн завязан с функционалом - функционал ограничивает дизайн?

Спустя 10 минут, 1 секунда (23.12.2011 - 16:59) Эдик написал(а):
sergeiss, ну получается так. Ну я думаю эта проблема возникает, когда ты используешь ajax. Его используя ты же вставляешь результат в определенный блок, а мне нужно результат распределить по 2 разным блокам в идеале- контентная часть и навигационная. Вот как это сделать я не придумал.

Ну я понимаю если бы сессия была возможна в js, но а так как?
Опять же на главной располагать функцию для обработки сессиий не катит - нету перезагрузки страницы, нету обновления навигатора.
А в самом work.php с помощью сессий формировать и отправлять навигатор не получается из-за невозможность разделить сам навигатор и основной контент по блокам.

Спустя 13 минут, 47 секунд (23.12.2011 - 17:13) killer8080 написал(а):
Цитата (Эдик @ 23.12.2011 - 15:59)
Ну я понимаю если бы сессия была возможна в js, но а так как?

Нифига не понимаю. Причем тут js, аякс обращается к php. Кто мешает использовать сессии в бэкэнде аякса?

Спустя 5 минут, 46 секунд (23.12.2011 - 17:19) Эдик написал(а):
killer8080, блин, да никто не мешает, я их там и использую,
но сомтри, мне нужен навигатор. В бэкэнде я использую сессии, могу даже там сформировать навигатор с помощью сессий, могу даже его отправить без проблем обратно вместе с контентом. но! во фронтэнде мне нужно рассувать навигатор и основной контент по 2 разным блокам, один выше, один ниже, и я не знаю как это делать, ведь данные приходят целостным result

Спустя 1 час, 42 минуты, 11 секунд (23.12.2011 - 19:01) sergeiss написал(а):
Цитата (killer8080 @ 23.12.2011 - 18:13)
во фронтэнде мне нужно рассувать навигатор и основной контент по 2 разным блокам, один выше, один ниже, и я не знаю как это делать

Цитата (Эдик @ 23.12.2011 - 17:59)
А в самом work.php с помощью сессий формировать и отправлять навигатор не получается из-за невозможность разделить сам навигатор и основной контент по блокам.


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

На самом деле не важно совсем, используешь ты аякс или не используешь. Надо данные от представления отделить. И лучше это сделать на "раннем" этапе smile.gif Когда кода немного.


Спустя 28 минут, 4 секунды (23.12.2011 - 19:29) Эдик написал(а):
Ну тут один выбор получается, чтобы максимально все отделить : отдавать work.php и принимать от него массивы данных, а разборку делать на клиенте, те в браузере, но блин, на каждый шаг идет свое представление, в php я просто подключал нужный файл шаблона, а тут придется голый switch использовать, как то не круто

Спустя 4 часа, 12 минут, 58 секунд (23.12.2011 - 23:42) sergeiss написал(а):
Цитата (Эдик @ 23.12.2011 - 20:29)
Ну тут один выбор получается, чтобы максимально все отделить : отдавать work.php и принимать от него массивы данных, а разборку делать на клиенте, те в браузере, но блин, на каждый шаг идет свое представление, в php я просто подключал нужный файл шаблона, а тут придется голый switch использовать, как то не круто

Если честно, то я не совсем понял. Ты же можешь пересылать через аякс не только данные, но и целиком готовые блоки с форматированием. Потом их выводишь в браузер и они красиво показываются.
Или я не о том?

Спустя 14 минут, 41 секунда (23.12.2011 - 23:57) Эдик написал(а):
sergeiss, ну да, о том. Я просто говорил, что есть 2 варианта:
либо отсылать готовые блоки, либо формировать блоки у клиента.
Вернемся к готовым блокам : я формирую готовый блок основного контента и блок навигатора и отдаю. Как вне во фронтэнде их разделить и поставить каждый на свое место?

Спустя 14 минут, 54 секунды (24.12.2011 - 00:12) sergeiss написал(а):
Цитата (Эдик @ 24.12.2011 - 00:57)
Вернемся к готовым блокам : я формирую готовый блок основного контента и блок навигатора и отдаю. Как вне во фронтэнде их разделить и поставить каждый на свое место?

А кто тебе мешает уже на каком-то более раннем этапе сделать там DIV, а потом только контент в него поместить? У ДИВа будет позиционирование такое, какое нужно.
То же и с "навигатором". Правда, я не совсем понял, что ты имеешь ввиду под "навигатором" smile.gif Скорее всего, это, по сути, просто блок с информацией. Поэтому его также размещаешь в отдельном ДИВе. Содержание ДИВа передаешь через аякс, а сам ДИВ уже сидит на месте.

В крайнем случае, если ты будешь всё формировать динамически, то можешь через аякс же передать, где будет располагаться ДИВ. Короче говоря, не вижу проблем тут ни с какой стороны.

Спустя 8 минут, 13 секунд (24.12.2011 - 00:20) Эдик написал(а):
sergeiss, смотри, я делаю на главной странице 2 ДИВа, один под навигатор(типа хлебные крошки для шагов), другой под контент.
например <div class="links"></div> и <div class="content"></div>
Вот. Теперь в work.php я формирую например тоже 2 блока с классами "links" и "content". "отправляю" их через include(./tpl/links.htm); и include(./tpl/content.htm);
Теперь как мне в index.php их разделить, чтобы блок с классом links попал внутрь соответствующего блока и content то же самое?

Спустя 1 минута, 15 секунд (24.12.2011 - 00:21) Эдик написал(а):
Я же получаю один ответ - "result", как я тут смогу разделить эти 2 блока по своим местам?

Спустя 7 минут, 31 секунда (24.12.2011 - 00:29) Эдик написал(а):
Я предугадаю ваш ответ и объясню зачем вообще эта каша заваривалась
Просто на предпоследнем шаге мне нужно вывести список, а потом при нажатии на элемент его рядом вывести таблицу, не удаляя этот список.
Те страница получается разделена на 2 блока будет. И если навигатор вывести одновременно с блоком списка, то получится некрасивый перенос навигатора на 3 строки, тк ширина списка 300px, поэтому и нужно совершенно в другой блок вставлять навигатор

Спустя 1 минута, 55 секунд (24.12.2011 - 00:30) killer8080 написал(а):
Цитата (Эдик @ 23.12.2011 - 23:21)
Я же получаю один ответ - "result", как я тут смогу разделить эти 2 блока по своим местам?

заворачивай контент в json.

Спустя 8 минут, 38 секунд (24.12.2011 - 00:39) Эдик написал(а):
killer8080, а это идея. Честно говоря с этим форматом еще не работал, но чувствую что "это то".

Тогда еще вопрос "на засыпку". С точки зрения быстродействия, как лучше вообще, использовать ajax только для отправки-получения массива ключей, а формировать нужный html с помощью js у клиента, или формировать html на сервере и тупо отдавать в нужный блок?

Спустя 5 минут, 43 секунды (24.12.2011 - 00:45) killer8080 написал(а):
Эдик
Проще формировать готовые блоки на сервере, а клиентом тупо вставлять.

Спустя 1 минута, 56 секунд (24.12.2011 - 00:47) Эдик написал(а):
Проще для кого? Мне важна скорость. Я просто исхожу из того, что если будет 100 одновременных посещений, то нагрузка на сервер будет неплохая, а если отдать всю тяжесть формирования html на плечи самого пользователя, то нагрузка уменьшиться в разы. Или я не прав?

Спустя 14 часов, 10 минут, 55 секунд (24.12.2011 - 14:58) killer8080 написал(а):
Эдик
Серверу без разницы: отдать готовый html, или сложный многомерный JSON объект. Разница в трафике будет небольшой, и еще не известно в чью пользу. Зато значительно облегчается клиентский JS. smile.gif

Спустя 2 часа, 7 минут, 8 секунд (24.12.2011 - 17:05) Эдик написал(а):
killer8080, просто же я отправил запрос, получил массив ответов в виде массива id и отдал его клиенту, а клиент сам разобрал и сформировал страницу.
А если по другому, то сервер получает массив, обрабатывает его, подключает страницу шаблона и все это отдает, разве разницы не будет в скорости для самого пользователя, который жмякает на кнопки?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.