Das beste Beispiel für das, was ich versuche, ist das Navigationssystem von YouTube. Wenn Sie auf einen Link zu einem Video klicken, wird oben auf der Seite ein roter Balken angezeigt, der angibt, wie viel von der angeforderten Seite geladen wurde. Wenn die angeforderte Seite fertig geladen ist, ersetzt sie sofort den Inhalt der vorherigen Seite und das Video beginnt zu laden. Es gibt verschiedene Dinge, um dies so nahtlos wie möglich zu machen.
Ich habe die URL mit:
geändert %Vor%Ich habe versucht, die angeforderte Seite mit:
zu laden %Vor%Dies würde den Code der gesamten vorherigen Seite durch den neuen Seitencode ersetzen. Mehrere Probleme damit:
Die Navigation vor und zurück funktioniert mit der URL, aber ein Event-Handler muss dies erkennen und die richtige Seite laden. Ich habe das benutzt:
%Vor%$.load()
kann (sollte nicht) neue Skript-Tags für Skripte laden, da Synchronous XMLHttpRequest on the main thread is deprecated
Was ich gerne tun könnte:
Quellen:
Adressleiste mit neuen aktualisieren URL ohne Hash oder Neuladen der Seite
Laden Sie die HTML-Seite dynamisch in div mit jQuery
JS- oder Jquery-Browser-Schaltfläche "Zurück" -Klickdetektor
Dieser folgende Beitrag könnte Ihnen helfen.
Neugierig auf die neue Art, wie YouTube Seiten lädt
Sie können prüfen, ob eine js-Bibliothek namens history.js Ihnen dabei helfen kann, das zu erreichen, was Sie brauchen.
> Die Bibliothek history.js erledigt die ganze harte Arbeit im Umgang mit der Geschichte und ich muss mich nur um die Navigation kümmern, was einfach war. Alles, was ich tun muss, ist, dass alle Skripte beim ersten Laden der Seite geladen werden (wenn der Benutzer zum ersten Mal auf die Seite kommt). Wenn sie dann "umgeleitet" werden, wird der Seitenkörper mit $("body").load("pageToBeLoaded.php",pageToBeLoaded())
durch die richtige Seite ersetzt. Die Funktion pageToBeLoaded()
wird nach ihrer Fertigstellung aufgerufen und behandelt alle spaßigen Dinge für die neue Seite.
Tags und Links javascript jquery php ajax html5