czytałem wszystkie posty o history.js na StackOverflow tym, this, this i this i co wyglądało na source code ale jako nowicjusz do JavaScript/jQuery jestem mając problem z ustaleniem, jak właściwie zaimplementować obsługę html 5 historii i awarię obsługi przeglądarek html4, takich jak ie8/9. Jak mogę docenić korzyści UX z prezentacji spójnego adresu URL, jak to możliwe, jak to rozwiązuje głębokie łączenie i pozwala na tworzenie zakładek, które chcę zaimplementować, ale jestem trochę zagubiony, gdy próbuję faktycznie użyć tego na mojej stronie.Jak właściwie używać history.js na mojej stronie
Po dodaniu history.js skryptu na mojej stronie
Kodeksu zmodyfikować jak undertand to:
function(window,undefined){
// Prepare
var History = window.History; // Note: We are using a capital H instead of a lower h
if (!History.enabled) {
// History.js is disabled for this browser.
// This is because we can optionally choose to support HTML4 browsers or not.
return false;
}
// Bind to StateChange Event
History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate
var State = History.getState(); // Note: We are using History.getState() instead of event.state
History.log(State.data, State.title, State.url);
});
// Change our States
History.pushState({state:1}, "State 1", "?state=1"); // logs {state:1}, "State 1", "?state=1"
History.pushState({state:2}, "State 2", "?state=2"); // logs {state:2}, "State 2", "?state=2"
History.replaceState({state:3}, "State 3", "?state=3"); // logs {state:3}, "State 3", "?state=3"
History.pushState(null, null, "?state=4"); // logs {}, '', "?state=4"
History.back(); // logs {state:3}, "State 3", "?state=3"
History.back(); // logs {state:1}, "State 1", "?state=1"
History.back(); // logs {}, "Home Page", "?"
History.go(2); // logs {state:3}, "State 3", "?state=3"
})(window);
Czy //Change our states
gdzie wszystko idzie jak nowy kod ten kod po prostu daje przykłady kontrola historii?
Czy powinienem napisać własny kod zamiast całego bloku kodu (używam jquery, aby mi pomóc w tym momencie, biorąc pod uwagę moją nowość w kodowaniu).
Czytałem ten numer article o dynamicznym ładowaniu treści i próbowałem zaimplementować na mojej stronie (mogę uruchomić ten kod, ale wiem, że nie będzie on dobrze grać w ie8/9), ale mam problemy z próbą wymyślić, jak połączyć z history.js
Aslo, w drugiej kolejności, staram się dowiedzieć, w jaki sposób history.js gra z modernizr?
Czy to zamiennik modernizr.history (gdzie robi test i jeśli nie ma wsparcia dla js wraca do typowego ładowania strony) lub będzie ona działać tak:
if (Modernizr.history) {
//Code goes here that works if it's HTML 5 Browser with .history support? I know some HTML5 browsers deal with .history oddly (read buggy) so what happens in those cases?
} else {
//code from above goes here? with function(window, undefined){...etc... ?
}
Tak, to jest moje pytanie, gdzie działają te funkcje i jak korzystają z history.js. Pytam, pisząc te funkcje, o czym muszę pamiętać, skąd się biorą i jak się komunikują z history.js za kulisami. – pappley
Historia jest czymś, co widzę częściej używaną w aplikacjach ajaxowych na jednej stronie, na przykład w części związanej powyżej będziesz miał coś takiego, jak state.url == to, następnie wykonaj to, w przeciwnym razie wykonaj coś innego. Umożliwia dynamiczne ładowanie różnych sekcji aplikacji pojedynczej strony w zależności od adresu URL. Ale wszystko to może być dość skomplikowane. Mówiąc, że jesteś nowicjuszem w js/jQuery, wątpię, czy potrzebujesz nawet takich zaawansowanych funkcji. Wyjaśnij, co chciałbyś osiągnąć, gdybyś miał wsparcie historii. – Robert
Pewnie. Tworzę witrynę internetową, w której głębsze poziomy mają wiele wspólnych znaczników. Dlatego chciałbym ściągnąć tylko zmieniającą się treść. (Dużo tego zdarzyłoby się w panelach ślizgowych. Załadowałbym zawartość poza ekran, a następnie przesuwałbym ją na ekranie w przypadku zdarzenia kliknięcia). Wydaje mi się, że zapewnia on znacznie bardziej intuicyjny interfejs użytkownika, jeśli często spotykana zawartość nie jest ponownie ładowana. Muszę jednak zapewnić użytkownikom możliwość zakładania lub udostępniania linków do witryn, nawigację za pomocą przycisku wstecz/do przodu przeglądarki, ponieważ są to akceptowane praktyki użytkowników. Jak rozumiem, właśnie do tego służy plik history.js. – pappley