Как добавить запись в history ?

Mols

Новичок
Как добавить запись в history ?

В общем задачка такая... есть простенький сайт. Все странички этого сайта отображаются в одном общем шаблоне. Есть у меня желание сделать так, чтобы при переходе между страничками с сервера спрашивалась только изменённая часть странички... то есть информативная часть без шаблона. Собственно с этим проблем нет.
Проблема в том, что браузер в такой ситуации (использование HTTPRequest) - не заносит данные в историю и кнопки "на предыдущую"/"на следующую" остаются не активными. А хотелось бы пользователям оставить возможность пользоваться этим удобным средством браузера.
Итак вопросы.
1. Как внести запись в history?
2. Как перехватить и обработать клик на кнопках браузера "на предыдущую"/"на следующую"?
 

BRat

o_0
ну идея такая - index.php#contacts

1. window.location.hash
2. window.location.hash, setInterval
 

Farsh

~ on ~ high ~ wave ~
Mols
Молодца , хорошая тема , самому интересно . Тоже жду советов :)
 

Mols

Новичок
BRat
window.location.hash - изменение этого значения не активирует кнопки истории в ИЕ (Огнелис и Опера среагировали как хотелось бы)
-----------
window.location.hash, setInterval --- можно осуществить только в Огнелисе .

-~{}~ 04.12.07 21:38:

Mr_Max
чё то я не понял... о чём речь ?
1. Что за чистые окна ?
2. если о document.location - то не подходит.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
1. Проехали.
2. неужели со всех способов ни один не подошол?
Ну чем мог, тем помог
 

Mols

Новичок
Mr_Max
Шут его знает... или у меня ИЕ какой то неправильный... или там когда пишут о кроссбраузерности чего-то не договаривают )))
Все основные идеи протестил. ИЕ не пробивается свол.

-~{}~ 04.12.07 22:44:

Хотя конечно ещё возможен вариант с кривизной ручек... или внимания ))
 

dimagolov

Новичок
ИМХО как и фреймы Ajax не предназначен для навигации. Как только возникает желание добавить страничку именно в этом виде в закладки или перейти на предидущий шаг назад, то надо с Ajax-ом завязывать...
Так что вымучить то такое можно, но не нужно - это не только ведь в history засунуть, это надо чтобы по запросу с букмарка сервер корректно состояние востановил. В общем много дурной работы ради того, чтобы или не сразу загрузить пару килобайт, или не перерисовать страничку пару-тройку раз.
 

Mols

Новичок
Автор оригинала: dimagolov
Так что вымучить то такое можно
как ?
Автор оригинала: dimagolov
но не нужно
Тут я не соглашусь.
1. Сайт становится более "живым"(при переходе между страничками пользователь как бы листает книгу. Например нет ненужной прокрутки на верх страницы ну и масса различных эффектов становится доступнее и удобнее в реализации).
2. Уменьшается кол-во передаваемого гипертекста в 2-4 раза (а это скорость отображения новой информации - основное требование удобства пользователя)
3. В моём шаблоне около 40 картинок - а это считай 40 запросов серверу на "из модифаед", при каждом переходе между страничками.. оно надо ?
Автор оригинала: dimagolov
это не только ведь в history засунуть, это надо чтобы по запросу с букмарка сервер корректно состояние востановил. пару-тройку раз.
Хм да... с этим похоже я таки накололся ). Засунуть нужную инфу в закладки проблематично таки.
 

cDLEON

Онанист РНРСlub
А мне кажется, если требуется сделать так, что бы и поисковики по ссылкам лазили и "назад" работала, нужно всего то у юзверей с включённым яваскриптом, динамически позаменять ссылки по какому нить правилу да с хешем.
 

Mols

Новичок
cDLEON
Хм... ну да. Только обрабатывать их надо на JS. И тут же возвращаемся к исходной проблеме с history.
В ИЕ запихнуть данные в history удаётся только если переделать ссылку из обычной (внешней) на ссылку внутрь страницы. Но блин когда нажимаешь "на предыдущую" после этого.... в общем ни window.location.hash ни document.location в ИЕ не изменяются.... и невозможно заметить что пользователь нажал "на предыдущую".
Кроме того... действительно если ссылка ссылается на текущую страницу и отличается от исходного адреса страницы только приставкой #* - то при помещении её в закладки, на сервер придёт только первичный адрес... без адреса якоря (#*), а значит и различать эти странички на серве не получится.
В общем я в тупике....
Решение могло бы быть в изменении document.location - но это приводит к мгновенному запросу на сервер с перезаписью всего содержимого страницы. Может кто нить знает как поменять document.location и заставить при этом браузер не спрашивать новый контент ?
З.Ы.
наверное я "желаю странного" )))
 

Mols

Новичок
MiRacLe
не надо поражаться. Бывает )))
за ссылку спасибо. Есть работающие примеры. Вот этот например.

http://www.mikage.to/jquery/jquery_history.html
 
Сверху