Comments 29
Давно не видел такой слабообоснованной критики jQuery…
Я немного подправил формулировку P.S., не очень хочется во всех подробностях обсуждать реализацию на конкретном фреймворке — это дело каждого.
live и не убирать класс EngineAJAX. не?
Пробовал не убирать EngineAJAX. Получается медленнее «найти все ссылки на страницы и понять проставлены ли им #!», особенно если на странице 100+ ссылок. Поэтому и убираю класс EngineAJAX, чтобы повторно не анализировать уже преобразованные в якоря ссылки.
Насчет live — честно, не понял, что имеете ввиду.
Насчет live — честно, не понял, что имеете ввиду.
$('a.EngineAJAX').live('click', function() {
console.log(this); // аяксовая ссылка
});
live это метод в jQuery, он привязывает обработчик к событию для всех текущих и будущих элементов dom api.jquery.com/live/
даже без использования jQuery.live, почему бы не добавлять в обработанные ссылки дополнительный атрибут или класс, дабы не обрабатывать якоря повторно?
мне нравиться как все ваши проблемы решили на GitHub, описание можете посмотреть здесь railscasts.com/episodes/246-ajax-history-state с помощью функции pushState
.delegate() и onHashChanged
.delegate() — самое то. C .live() есть проблемы (с контекстом). onHashChanged тут какбе и не надо — один раз заменить ссылки, а потом заменять перед вставкой контента. Тогда через .delegate() мы будем ловить клики, а вот onHashChange() уже и не понадобится.
Мне кажется лучше с другой стороны вообще пойти.
Например jQuery.Address</a?
+ Google
Ну с другими поисковиками конечно прийдется смирится. Хотя может быть есть что-то для Яндекса/Рамблера.
Например jQuery.Address</a?
Ну с другими поисковиками конечно прийдется смирится. Хотя может быть есть что-то для Яндекса/Рамблера.
Насчет проверки изменения хэша (в т.ч. и дабы решить проблему с историей) — один из авторов jQuery написал свой плагин (и не один):
benalman.com/projects/jquery-hashchange-plugin/
Для браузеров, не поддерживающих стандартное событие onhashchange там таки вечный цикл с проверкой.
benalman.com/projects/jquery-hashchange-plugin/
Для браузеров, не поддерживающих стандартное событие onhashchange там таки вечный цикл с проверкой.
Всегда мучал вопрос: Почему большинство пытается прикрутить параметр типа ?notemplate=1, вместо того, чтобы просто проконтролировать заголовок запроса на наличие и тип X-Requested-With?
Конечно, ?notemplate=1 проще контролировать, но контроль X-Requested-With использует уже готовый механизм. К тому же позволяет понять, в каком формате: XML, JSON, HTML клиет хочет получить ответ.
Конечно, ?notemplate=1 проще контролировать, но контроль X-Requested-With использует уже готовый механизм. К тому же позволяет понять, в каком формате: XML, JSON, HTML клиет хочет получить ответ.
Sign up to leave a comment.
Hash-навигация в AJAX-сайтах