Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подгрузка по необходимости...
 
 автор: ZuArt   (27.06.2007 в 12:41)   письмо автору
 
 

Исходные данные:

Требуется - страница сайта (список товаров), при выборе какого-то объекта из списка, через AJAX подгружается информация по нему без перезагрузки сайта.

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

Проблема - при обновлении страницы (по F5 или даже простому заходу), естессно загруженные данные не сохраняются и каждый выбор снова прогружает данные, которые УЖЕ были прогружены предыдущим заходом.

Нужно!!!! Чтобы загруженные через AJAX данные каким-то образом сохранялись на компе юзера, дабы при новом заходе на сайт они попадали в этот массив (далее работа по алгоритму). Нужен вариант, который не будет гонять туда-сюда лишний трафик:
- Кукисы - не подходят, т.к. они гоняют трафик от посетителя на сервак (или я просто не знаю возможности их хранить БЕЗ передачи значений на сервер)
- Сессии - привязаны к сессии, а если человек закрыл браузер и потом повторил заход ,сессия уже другая...
- Авторизация - большинство посетителей гости + при первом заходе на сайт и прогрузке всех просмотренных данных равносильно передаче практически всех данных сразу, которые были ранее просмотрены, что прогоняет весь ненужный трафик =(

Задачка нетривиальная... Если кто-то найдет решение - будет потрясающе =)))...

   
 
 автор: bronenos   (27.06.2007 в 14:05)   письмо автору
 
   для: ZuArt   (27.06.2007 в 12:41)
 

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

почему сессия другая?

   
 
 автор: ZuArt   (27.06.2007 в 14:59)   письмо автору
 
   для: bronenos   (27.06.2007 в 14:05)
 

Ну хотя бы потому, что после закрытия браузера - данный идентификатор сессии освобождается и его может занять другой человек...
+ в сессиях, вроде, тоже данные при переходе перепрокачиваются от сервака (пусть меня поправят, если ошибаюсь - моя болезнь, постоянно туплю на сессиях) =(

   
 
 автор: AlexSol   (27.06.2007 в 15:06)   письмо автору
 
   для: ZuArt   (27.06.2007 в 14:59)
 

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

   
 
 автор: ZuArt   (27.06.2007 в 15:21)   письмо автору
 
   для: AlexSol   (27.06.2007 в 15:06)
 

=(((

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

   
 
 автор: AlexSol   (27.06.2007 в 15:41)   письмо автору
 
   для: ZuArt   (27.06.2007 в 15:21)
 

написать свой броузер.

   
 
 автор: bronenos   (27.06.2007 в 23:55)   письмо автору
 
   для: ZuArt   (27.06.2007 в 15:21)
 

скажите, размер подгружаемых данных каков?

   
 
 автор: bronenos   (27.06.2007 в 16:18)   письмо автору
 
   для: ZuArt   (27.06.2007 в 14:59)
 

сессия хранится, пока передается ее идентификатор (сцылкой или кукой)

   
 
 автор: Eugene77   (27.06.2007 в 21:50)   письмо автору
 
   для: ZuArt   (27.06.2007 в 12:41)
 

>Нужно!!!! Чтобы загруженные через AJAX данные каким-то образом сохранялись на компе юзера,

В принципе, браузер хранит в кэше просмотренные файлы, поэтому если сделать таблицу в ячейках которой будут html файлы сидеть, то они второй раз подгружаться не будут. Только как это через ajax организовать - не знаю. Я что-то нигде толкового руководства по нему не найду. Может быть bronenose, наконец, напишет, тогда его книжка нарасхват пойдёт, ещё очередь образуется. :-))

   
 
 автор: bronenos   (27.06.2007 в 23:45)   письмо автору
 
   для: Eugene77   (27.06.2007 в 21:50)
 

книжку про что =)

   
 
 автор: Valick   (28.06.2007 в 07:28)   письмо автору
 
   для: bronenos   (27.06.2007 в 23:45)
 

мемуары...

   
 
 автор: bronenos   (28.06.2007 в 07:33)   письмо автору
 
   для: Valick   (28.06.2007 в 07:28)
 

Мемуары спросом не будут пользоваться =)

   
 
 автор: CNT   (28.06.2007 в 09:59)   письмо автору
 
   для: ZuArt   (27.06.2007 в 12:41)
 

Вы написали:- Кукисы - не подходят, т.к. они гоняют трафик от посетителя на сервак (или я просто не знаю возможности их хранить БЕЗ передачи значений на сервер)
Имею сказать: куки можно обрабатывать javascript'ом - var aCookie = document.cookie, а javascript, как вам должно быть известно, никакого отношения к передаче "трафика от посетителя на сервак" не имеет, ибо обрабатывается браузером посетителя.
При входе на страницу читаете куки (если они есть), из которых вытаскиваете ваш "массив уже загруженного", при выборе товара (или при уходе со страницы, а обновление - это как раз "уход и последубщий приход") заносите в куки массив.
Единственное ограничение - объём: в куках можно хранить не более 4К

   
 
 автор: bronenos   (28.06.2007 в 10:02)   письмо автору
 
   для: CNT   (28.06.2007 в 09:59)
 

вот для этого я и интересовался размером загружаемых данных

   
 
 автор: ZuArt   (28.06.2007 в 14:57)   письмо автору
 
   для: bronenos   (28.06.2007 в 10:02)
 

Подгружемые данные на каждую позицию будут меньше Килобайта... НО!!! Почему я спрашивал про кукисы...

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

А речь идет именно о том, как сохранять данные на компе посетителя, но не гонять их туда-сюда...

Приемлемо было бы еще гонять туда-сюда идентификаторы позиций, но описания - никак низя =(((...

Есть такое предположение... Если описание помещать прямо в *.js файл в виде, скажем...

var info = "Тут собсно контент";
OnLoad(info);


Функа OnLoad(inf) - объявлена в основном блоке страницы... и там уже выполнять нужную обработку - просто отрисовывать данные, даже массив вести не нун... НО!!! (как обычно =))

1) Каким образом можно ДИНАМИЧЕСКИ подгружать файлы *.js в код причем так, чтобы они по ходу подгрузки выполнялись как поток...
2) Если в коде страницы встречается строчка <script src="....."></script>, то файл кешируется, а если его динамически "подгружать" - будет ли он кешироваться... и если да, откуда будет браться на выполнение код, при повторном обращении - к кешу или браузер будет снова перегружать файло???

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

ВО КАК!!!

РЕАЛЬНО?

   
 
 автор: bronenos   (28.06.2007 в 15:45)   письмо автору
 
   для: ZuArt   (28.06.2007 в 14:57)
 

динамически грузить можно двумя способами
1.
document.write <инструкция включения>
запустить функцию которая там содержится
2.
загрузить аяксом
то что загрузилось запустить евал()

куки передаются на сервер, но я не советую их использовать - при десяти объектах наверняка память переполнится, а хранить данные в массиве жс - тоже можно добиться того же

   
 
 автор: ZuArt   (28.06.2007 в 20:13)   письмо автору
 
   для: bronenos   (28.06.2007 в 15:45)
 

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

   
 
 автор: bronenos   (28.06.2007 в 20:35)   письмо автору
 
   для: ZuArt   (28.06.2007 в 20:13)
 

оперативная память компьютеров давно уже не 64 кб, а интернет у большинства, наверное, на выделенной линии
так стоит ли так возиться ради экономии пары десятков килобайт?

вы что подгружаете, описание или картинки?
если описание. то получайте не хтмл код, а именно описание

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования