Ho letto tutti i post su history.js su StackOverflow tra cui, this, this e this e al guardato la source code, ma come un nuovo arrivato a JavaScript/jQuery Sono avere problemi a capire come implementare effettivamente il supporto per la cronologia html 5 e il fallback per supportare i browser html4 come ie8/9. Come posso apprezzare i vantaggi di UX dal presentare quanto più possibile URL coerenti, come questo risolve il deep linking e consente il bookmarking che voglio implementare, ma mi sento un po 'perso quando cerco di usarlo sul mio sito.Come posso effettivamente usare history.js sul mio sito
Dopo aver aggiunto history.js script per la mia pagina
Il codice da modificare come ho undertand che è:
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);
È il //Change our states
dove tutto nuovo codice va come questo codice dà solo esempi della controlli di cronologia?
O dovrei scrivere il mio codice al posto di questo intero blocco di codice (io uso jquery per aiutarmi a questo punto, data la mia novità nella codifica).
Stavo leggendo questo article sul caricamento di contenuti dinamici e cercando di implementare sul mio sito (posso far funzionare questo codice ma so che non funzionerà bene in ie8/9), ma sto avendo problemi a provare a capire come combinare con history.js
Come, in secondo luogo, sto cercando di capire come history.js gioca con modernizr?
E 'un sostituto di modernizr.history (dove si fa il test e se non v'è alcun supporto per js scende di nuovo alla pagina tipica di carico) o sarebbe funzionare in questo modo:
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... ?
}
Sì, questa è la mia domanda, dove vanno queste funzioni e come fanno uso di history.js. Sto chiedendo quando scrivi quelle funzioni cosa devo tenere a mente, dove vanno e come comunicano con history.js dietro le quinte – pappley
La storia è qualcosa che vedo più essere usato nelle applicazioni ajax a pagina singola, per esempio nella parte bind sopra avresti qualcosa come if state.url == this, quindi eseguilo, altrimenti esegui qualcos'altro. Ti consente di caricare in modo dinamico diverse sezioni di un'applicazione singola pagina in base a un URL. Ma tutto questo può essere molto complicato. E dire che sei nuovo di js/jQuery sono un po 'in dubbio che hai bisogno di questo tipo di funzionalità avanzate. Spiega cosa ti piacerebbe realizzare SE avevi supporto per la storia. – Robert
Sicuro. Sto creando un sito web in cui i livelli più profondi condividono molti markup comuni. Quindi, mi piacerebbe inserire solo il contenuto che cambia. (Molto di questo accadrebbe nei pannelli scorrevoli: caricherò il contenuto dallo schermo e lo farò scorrere sullo schermo in un evento click). Penso che crei un'esperienza utente molto più intuitiva se i contenuti che sono comuni non vengono continuamente ricaricati. Tuttavia, avrei bisogno di fornire agli utenti la possibilità di creare un segnalibro o condividere link al sito, navigare con il pulsante Indietro/Avanti del browser poiché si tratta di pratiche utente accettate. Come ho capito, questo è esattamente ciò che è per history.js. – pappley