Czy jest to właściwy sposób używania History.js?
Udało mi się stworzyć uproszczony, pełny przykład History.js, używając trzech linków do załadowania fragmentów treści z pełnej strony bez aktualizacji strony i aktualizacji historii przeglądarki.
Oto odpowiednie fragmenty kodu - kompletny działający przykład znajduje się tutajhttp://jsfiddle.net/PT7qx/show
<a href="/page-header">Page Header</a>
<a href="/login-form">Login Form</a>
<a href="/nothing">Nothing</a>
<script>
var History = window.History;
if (!History.enabled) {
return false;
}
History.Adapter.bind(window, 'statechange', function() {
var State = History.getState();
History.log(State.data, State.title, State.url);
if (State.title == 'Page Header') {
$('#content').load('/user/login/ .pageHeader > *');
}
if (State.title == 'Login Form') {
$('#content').load('/user/login/ #common-form > *');
}
if (State.title == 'Nothing') {
$('#content').empty()
}
});
$('body').on('click', 'a', function(e) {
var urlPath = $(this).attr('href');
var Title = $(this).text();
History.pushState(null, Title, urlPath);
// prevents default click action of <a ...>
return false;
});
<\script>
Chciałbym wiedzieć, czy jest to prawidłowe użycie. Poprzednia wersja miała możliwość powiązania ze zdarzeniem za pomocą # adresów URL. W tej najnowszej wersji nie widziałem żadnych przykładów powiązania wydarzeń z adresami URL, więc użyłem zdarzenia kliknięcia .on (), aby zadzwonić do Historii i uporządkować kliknięty link.
Nie jestem pewien, czy jest to najlepszy sposób na osiągnięcie tego w tym przykładzie.