![]() |
swfaddress: кто-нибудь пробывал адаптировать к JavaScript + XMLHttpRequest?
Собственно, вот, что хочется сделать: Есть ХТМЛ страничка, она может динамически грузить в себя фрагменты ХТМЛя, что делает ее логически другой страницой сайта, но из других соображений не хочется перегружать страницу каждый раз, а чтобы была заготовка + набор разных "довесок" к ней.
Возможно ли "объяснить" браузеру, что каждая новая загрузка == переходу на новую страницу? Небольшая поправка: возникает ли какое-нибудь событие при переходе по якорю, и как можно отловить ситуацию когда пользователь перешел на другой якорь используя back / forward / history? Подписал боди на все события, которые нашел в доках - но ничего из них не вызывается =( Последнее, что придумал - сетинтервалом проверять... И, естесственно, теперь работает только в ФФ, а в ИЕ - нет... :wacko: Ок... выяснилось, что ИЕ не добавляет #anchorName к document.location.href - следовательно, вопрос... а куда он его добавляет? =/ Вобщем, после долгих поисков и попыток слепить чего-нибудь самому примерно следующие результаты: Что именно Експлорер хранит в хистори - не понятно. Вся информация, которую можно получить о хистори - количество посещенных страниц (млин, ну почти... проблема в том, что "вперед" и "назад" считаются вместе - идиотизм, конечно... но факт). history.current (упоминание об этом можно встретить в разных источниках) возвращает undefined (есть предположение, что так это работало в каких-то более ранних версиях). Аналогично history.next и history.prewious. window.location.href и window.location.hash не обновляются при переходе на якорь внутри документа... Существует несколько разных версий реализации хистори для AJAX, но все со своими недостатками, при чем хуже всего дела обстоят с Сафари (ну и ладно бы...) но, то как это реализуется для остальных браузеров - просто караул =) Здоровенные JS файлы с созданием каких-то невидимых форм/ай-фреймов кучей постбеков... вобщем, не рационально, легче уже ХТМЛ весь перезагрузить, чем с этим заморачиваться... Кроме всего прочего обнаружилась куча петиций разработчииков на AJAX с просьбами улучшить работу хистори... очевидно, безответных =) Последняя надежда на то, что это можно как-то сделать на VBScript... но мне это совсем не понятно =) |
по теме: http://noregret.org/tutor/navigation/
по мнению: если страница логически становится другой у неё должен менять фактический адрес. Аякс хорошая чтука, но не везде. Ваша ситуация напоминает сайт сделанный на фреймах - навигируем-навигируем, а урл и ныне там :) |
По-моему ситуция вполне объяснимая: есть темплейт, он грузит стили, скрипты и какую-то минимальную статическую графику. И есть фактическое содержание страниц. Зачем мне нагружать пользовательский браузер перегружая абсолютно идентичный в пределах сессии контент + заставляя это все по новой перерисовывать/пересоздавать?
Про эту статью я знаю... проблема в том, что в Эксплорере 6.0 и 6.1 (а это примерно половина всех современных браузеров) location.hash при переходе по back / forward не обновляется. Т.е. вот такая ситуация: идем: страница#а -> страница#б. возвращаемся через хистори на цтраница#а. В эксплорере location.hash == страница#б, а в ФФ location.hash == страница#а. |
В статье расказано что обновляется title при переходе кнопками вперёд/назад, в вашей ситуации это не поможет?
во-первых, на сегодняшних скоростях и производительностях компьютеров, не думаю, что, нагрузки будут особо ощутимы. во-вторых, страница/сайт должны не терять своей функциональности и при отключенных скриптах, стилях и минимальной графики к тому же скрипты, стили и минимальная графика кешируются... особенно в ИЕ )) |
Смотрите, кешируются - да, но страница отдается в сессии с хидерами типа no-cache should revalidate и т.п. (надо, ничего не поделаешь).
Title не меняется... единственное, как можно отследить - если пихать якоря кудани-нибудь за пределы страницы - тогда при переходе через хистори на уже посещенный якорь страница попытается скролится к якорю... но это не очень надежный вариант (мало ли, а вдруг ее откроют на двух мониторах / с какими-нибудь настройками игнорирующими стили) + выглядит по-дурацки =) Да и вообще криво как-то =) Те у кого отключен яваскрипт сразу в рассчет не принимаются - нечего им на этом сайте делать =) |
картинкам, стилям (внешним) и скриптам (внешним) по барабану, с какими заголовками отдаётся страница.
Кстати у меня в ИЕ при изменении document.location.hash кнопки Вперёд/Назад вообще неактивны. |
Нет, все генерится и отдается ПХП. Т.е. есть класс, который генерит стили и по требованию их отдает браузеру, аналогично картинки и т.п. т.е. файлов типа style.css / mypicture.jpg и т.п. реально не существует. Так нужно =)
Так они становятся активными при переходе по якорям =) не наоборот же =) |
при переходе по якорям фокус переводится на ссылку с якорем - я уж думал это решение: подписываем события на эти якоря и как тока попадаем в фокус - сигналим... но... :( при кликах по кнопкам вперёд/назад якоря не ловят фокус.
|
Аха... вот и я о том же... но в ИЕ это еще цветочки... в Сафари вообще маразм, там, например, если якоря называть #anchor1, #anchor2, #anchor3 - то промежуточные (#anchor2) пропускаются при переходе назад-вперед по хистори... но не всегда... понять почему так происходит - не реально не прибив гвоздями пальцы разработчиков браузера к горячей сковородке =)
|
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 16:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.