In meiner Website befindet sich eine Navigationsleiste auf der linken Seite. Wenn ich auf die Links klicke, ändert sich das #container div auf meiner Seite, aber nichts anderes durch Ajax. Ich möchte Buttons hin- und herschieben, die nur das #container div im Zustand zurück und vorwärts bringen. Ich habe gelesen, dass history.js das Beste dafür wäre, und ich habe die html5-History-API durchgesehen, aber ich verstehe nicht, wie ich mein Problem lösen kann. Wie würde ich darüber hinaus eine Schaltfläche zum Aktualisieren implementieren?Wie benutzt man history.js?
Antwort
Es klingt wie das, was Sie suchen, ist etwas wie PJAX.
Nur um klar zu sein, die HTML5 History API (die History.js implementiert/Shims) nicht den Status Ihrer Anwendung direkt erhalten. Stattdessen bietet es einen Mechanismus zum Zuordnen von Änderungen in der Fenster-URL zu einer Funktion, die für das tatsächliche Rendern der Änderungen verantwortlich ist. Die readme bietet einen Einblick in, wie dies erreicht werden könnte:
History.Adapter.bind(window, 'statechange', function() {
var State = History.getState();
History.log(State.data, State.title, State.url);
});
Wenn stattdessen den Zustand der Anmeldung, in der Sie den Behälterinhalt verändern (ohne PJAX oder eine ähnliche Bibliothek), können Sie stattdessen den Inhalt speichern von #container
Sie jedes Mal pushState
aufrufen und die Handler-Funktion einstellen, so etwas zu tun:
History.Adapter.bind(window, 'statechange', function() {
var State = History.getState();
$('#container').empty().append(State.data.content);
});
History.pushState({content:"Hello, world!"}, "State 1", "?state=1");
natürlich müssen Sie dies ändern, um die Besonderheiten Ihrer Situation zu reflektieren.
- 1. wie man history.js zufälliger erster Zustand arbeitet
- 2. History.js Fallback funktioniert nicht richtig
- 3. history.js + Google
- 4. Wie benutzt man TCharHelper?
- 5. Wie benutzt man Jquery?
- 6. Wie benutzt man Resources.getFraction()?
- 7. Wie benutzt man Split?
- 8. Wie benutzt man will_paginate?
- 9. Wie benutzt man HorizontalScrollView?
- 10. Wie benutzt man ActionMenuView?
- 11. Wie benutzt man org.netbeans.swing.outline?
- 12. Wie benutzt man TailCalls?
- 13. Wie benutzt man ADBannerView?
- 14. Wie benutzt man pg_stat_activity?
- 15. Wie benutzt man onResume()?
- 16. Wie benutzt man JProgressBar?
- 17. Wie man ModelMultipleChoiceFilter benutzt?
- 18. Wie benutzt man TextAction
- 19. CIImage: Wie benutzt man CIAffineTransform?
- 20. Projections.Conditional - Wie benutzt man es?
- 21. Wie benutzt man Guave CacheBuilder?
- 22. Wie man moment.js richtig benutzt?
- 23. Expression.Body.Expressions - wie benutzt man es?
- 24. Wie benutzt man Rust's Peekable?
- 25. ViewDragHelper: wie man es benutzt?
- 26. Wie man ConsoleCancelEventHandler mehrmals benutzt
- 27. Wie benutzt man Morgan Logger?
- 28. Django Schnipsel. Wie benutzt man?
- 29. Qt: Wie benutzt man Leptonica?
- 30. Wie benutzt man Proguard-Dateien?
Ok Ich überprüfte die Pjax-Sache und es scheint zu funktionieren. Ich weiß zwar nicht, wie ich das Lade-Gif funktioniere. Dies ist die Codezeile, die das Pjax ausführt, wenn auf einen Link geklickt wird: $ (li a) pjax ('# container'); 'und dann der Link'
Auch weil main.html eine tatsächliche Datei ist, die es aufruft, kann ich die Seite nicht aktualisieren oder es wird nur die Ausgabe der Dateien angezeigt. Wie kann ich das beheben? – Wilfred