![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Modus ponens
|
Собственно, вот, что хочется сделать: Есть ХТМЛ страничка, она может динамически грузить в себя фрагменты ХТМЛя, что делает ее логически другой страницой сайта, но из других соображений не хочется перегружать страницу каждый раз, а чтобы была заготовка + набор разных "довесок" к ней.
Возможно ли "объяснить" браузеру, что каждая новая загрузка == переходу на новую страницу? Небольшая поправка: возникает ли какое-нибудь событие при переходе по якорю, и как можно отловить ситуацию когда пользователь перешел на другой якорь используя back / forward / history? Подписал боди на все события, которые нашел в доках - но ничего из них не вызывается =( Последнее, что придумал - сетинтервалом проверять... И, естесственно, теперь работает только в ФФ, а в ИЕ - нет... ![]() Ок... выяснилось, что ИЕ не добавляет #anchorName к document.location.href - следовательно, вопрос... а куда он его добавляет? =/ Вобщем, после долгих поисков и попыток слепить чего-нибудь самому примерно следующие результаты: Что именно Експлорер хранит в хистори - не понятно. Вся информация, которую можно получить о хистори - количество посещенных страниц (млин, ну почти... проблема в том, что "вперед" и "назад" считаются вместе - идиотизм, конечно... но факт). history.current (упоминание об этом можно встретить в разных источниках) возвращает undefined (есть предположение, что так это работало в каких-то более ранних версиях). Аналогично history.next и history.prewious. window.location.href и window.location.hash не обновляются при переходе на якорь внутри документа... Существует несколько разных версий реализации хистори для AJAX, но все со своими недостатками, при чем хуже всего дела обстоят с Сафари (ну и ладно бы...) но, то как это реализуется для остальных браузеров - просто караул =) Здоровенные JS файлы с созданием каких-то невидимых форм/ай-фреймов кучей постбеков... вобщем, не рационально, легче уже ХТМЛ весь перезагрузить, чем с этим заморачиваться... Кроме всего прочего обнаружилась куча петиций разработчииков на AJAX с просьбами улучшить работу хистори... очевидно, безответных =) Последняя надежда на то, что это можно как-то сделать на VBScript... но мне это совсем не понятно =)
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 29.06.2008 в 01:49. |
|
|||||
|
по теме: http://noregret.org/tutor/navigation/
по мнению: если страница логически становится другой у неё должен менять фактический адрес. Аякс хорошая чтука, но не везде. Ваша ситуация напоминает сайт сделанный на фреймах - навигируем-навигируем, а урл и ныне там ![]() |
|
|||||
|
Modus ponens
|
По-моему ситуция вполне объяснимая: есть темплейт, он грузит стили, скрипты и какую-то минимальную статическую графику. И есть фактическое содержание страниц. Зачем мне нагружать пользовательский браузер перегружая абсолютно идентичный в пределах сессии контент + заставляя это все по новой перерисовывать/пересоздавать?
Про эту статью я знаю... проблема в том, что в Эксплорере 6.0 и 6.1 (а это примерно половина всех современных браузеров) location.hash при переходе по back / forward не обновляется. Т.е. вот такая ситуация: идем: страница#а -> страница#б. возвращаемся через хистори на цтраница#а. В эксплорере location.hash == страница#б, а в ФФ location.hash == страница#а.
__________________
Hell is the possibility of sanity |
|
|||||
|
В статье расказано что обновляется title при переходе кнопками вперёд/назад, в вашей ситуации это не поможет?
во-первых, на сегодняшних скоростях и производительностях компьютеров, не думаю, что, нагрузки будут особо ощутимы. во-вторых, страница/сайт должны не терять своей функциональности и при отключенных скриптах, стилях и минимальной графики к тому же скрипты, стили и минимальная графика кешируются... особенно в ИЕ )) |
|
|||||
|
Modus ponens
|
Смотрите, кешируются - да, но страница отдается в сессии с хидерами типа no-cache should revalidate и т.п. (надо, ничего не поделаешь).
Title не меняется... единственное, как можно отследить - если пихать якоря кудани-нибудь за пределы страницы - тогда при переходе через хистори на уже посещенный якорь страница попытается скролится к якорю... но это не очень надежный вариант (мало ли, а вдруг ее откроют на двух мониторах / с какими-нибудь настройками игнорирующими стили) + выглядит по-дурацки =) Да и вообще криво как-то =) Те у кого отключен яваскрипт сразу в рассчет не принимаются - нечего им на этом сайте делать =)
__________________
Hell is the possibility of sanity |
|
|||||
|
картинкам, стилям (внешним) и скриптам (внешним) по барабану, с какими заголовками отдаётся страница.
Кстати у меня в ИЕ при изменении document.location.hash кнопки Вперёд/Назад вообще неактивны. |
|
|||||
|
блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
|
В статье выше написано, что title меняется только вслучае перезагрузки любой флэшки на странице - пример там есть.
Также в статье выше написано, что ИЕ не запоминает в Хистори невалидные(без якоря) ссылки. Т.е. чтобы он ее запомнил, нужно создать вначале якорь с таким именем. |
|
|||||
|
Modus ponens
|
Нет, все генерится и отдается ПХП. Т.е. есть класс, который генерит стили и по требованию их отдает браузеру, аналогично картинки и т.п. т.е. файлов типа style.css / mypicture.jpg и т.п. реально не существует. Так нужно =)
Так они становятся активными при переходе по якорям =) не наоборот же =)
__________________
Hell is the possibility of sanity |
|
|||||
|
при переходе по якорям фокус переводится на ссылку с якорем - я уж думал это решение: подписываем события на эти якоря и как тока попадаем в фокус - сигналим... но...
при кликах по кнопкам вперёд/назад якоря не ловят фокус. |
|
|||||
|
Modus ponens
|
Аха... вот и я о том же... но в ИЕ это еще цветочки... в Сафари вообще маразм, там, например, если якоря называть #anchor1, #anchor2, #anchor3 - то промежуточные (#anchor2) пропускаются при переходе назад-вперед по хистори... но не всегда... понять почему так происходит - не реально не прибив гвоздями пальцы разработчиков браузера к горячей сковородке =)
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:09. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| javascript , swfaddress , xmlhttprequest |
|
|