Какая лучшая библиотека для создания хеша URL/истории в JQuery?

Я просматривал библиотеки JQuery для хеша URL, но не нашел ничего хорошего. Существует "плагин истории", но мы все знаем, что он глючит и не является гибким.

Я загружаю свои страницы внутри div. Мне понадобится способ сделать назад/вперед вместе с хэшированием URL.

mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register

Какая лучшая библиотека может обрабатывать все это?

Ответ 1

Недавно я просмотрел 3 разных плагина - плагин истории jquery, history и jQuery BBQ.

Их было довольно сложно настроить, я работал с jQuery.history, но у меня все еще были проблемы с IE7. Поэтому я перешел на BBQ, и он отлично работал во всех наших целевых браузерах (IE6, IE7, IE8, Fx3).

Поэтому я рекомендую плагин jQuery для BBQ.

Изменить: здесь сообщение в блоге Я только что написал, который демонстрирует jQuery BBQ с каскадным выпадающим списком.

Ответ 2

Вы пробовали адрес jQuery? От Asual, ребята, которые сделали SWFAdress. Asual - адрес jquery

Плагин JQuery Address обеспечивает мощные возможности глубокого связывания и позволяет создавать уникальные виртуальные адреса, которые могут указывать на раздел веб-сайта или состояние приложения.

Ответ 3

History.js хорошо документирован/поддерживается и поддерживает все браузеры.

https://github.com/browserstate/history.js

С сайта:

History.js изящно поддерживает API-интерфейс истории/состояния HTML5 (pushState, replaceState, onPopState) во всех браузерах. В том числе постоянная поддержка данных, заголовков, replaceState. Поддерживает jQuery, MooTools и Prototype. Для браузеров HTML5 это означает, что вы можете изменить URL-адрес напрямую, без необходимости использовать хеши. Для HTML4-браузеры вернутся к использованию старого onhashchange функциональность.

Ответ 4

Мне повезло с reallysimplehistory (nee dhtmlHistory). Это не jQuery, но он работает в IE, firefox и webkit и не требует большой настройки.

Ответ 5

Возможно, попробуйте этот плагин истории jQuery: http://www.balupton.com/sandbox/jquery-history/demo/ Он обеспечивает поддержку кросс-браузера, привязку к хэшам, перегрузку хэшей, все остальное.

Существует также расширение Ajax, позволяющее легко обновлять вашу веб-страницу в правильном приложении Ajax: http://www.balupton.com/sandbox/jquery-ajaxy/demo/ p >

Это решение, выбранное такими сайтами, как http://wbhomes.com.au/ и http://gatesonline.com.au/stage/public/

В целом, он хорошо документирован, поддерживается и богат. Здесь также был задан вопрос о награде Как показать запросы Ajax в URL-адресе?

Ответ 6

AFAIK, все плагины истории делают то же самое:

setInterval(function() {
   if(theHashChanged) {
      someFunction(oldHash,newHash);
   }
}, 500/*whatever*/);

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

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