jHash: работаем с location.hash
Иногда возникает необходимость сделать хэш-маршрутизацию на небольших проектах/задачах. Прикручивать фреймворки, которые умеют делать это, типа backbone— зачастую похоже на стрельбу из пушки по воробьям.
Хочу поделиться библиотекой jHash.
jHash позволяет работать с «location.hash» по образу и подобию серверной query string. Поддерживается также кросс-браузерный «hashchange» обработчик событий событий на основе хэш-маршрутизации (из описания библиотеки).
Как это работает?
По сути, все сводится к следующему:
1. Регистрируем маршрут в виде:
jHash.route('/') , function()
{ console.log('in root'); });
jHash.route('/myRoute/'), function()
{ console.log('in myRoute'); }); // - статический роутинг;
jHash.route('/search/{param}'), function()
{ console.log(this.param); }); // — параметризованный роутинг (param - есс-но и есть параметр).
2. Собственно, маршрутизация/навигация осуществляется следующим образом:
jHash.root('/myRoute')
jHash.root('/search/same string')
3. Инициализируем маршрутизацию
$(document).ready(function(){ jHash.processRoute();})
На десерт:
jHash.defaultRoute("/").
Пример — здесь.
Также, на оффициальной странице есть хороший пример по использования связки jHash & knockoutjs смотеть.