Frage

Ich suchte im Web über diese Frage, aber ich fand nichts:

Was ist die Logik der Zurück-Taste? Was geschieht, wenn wir die Zurück-Taste auf einem Web-Browser schlagen?

Ich möchte wirklich mehr davon verstehen.

Danke.

War es hilfreich?

Lösung

Ihr Browser hält einen Stapel (oder eine Liste, wenn man so will) die Webseiten, die Sie in diesem Fenster besucht haben. Lassen Sie uns sagen, dass Ihre Homepage ist google.com und Sie von dort ein paar andere Websites besuchen: youtube.com, yahoo.com und cnn.com. Nach den letzten Besuch, sieht die Liste wie folgt aus:

google.com -> youtube.com -> yahoo.com -> cnn.com
                                            ^
                                            |
                                       current page

Wenn Sie die Zurück-Taste drücken, wird der Browser, den Sie zurück auf die vorherige Seite in der Liste nimmt, wie folgt aus:

google.com -> youtube.com -> yahoo.com -> cnn.com
                                ^
                                |
                           current page

An diesem Punkt Zurück erneut drücken, können Sie auf youtube.com zu nehmen, oder Sie können nach vorne drücken Sie auf cnn.com wieder zu setzen. Angenommen, Sie haben ein zweites Mal drücken Zurück:

google.com -> youtube.com -> yahoo.com -> cnn.com
                   ^
                   |
              current page

Wenn Sie jetzt gehen, sagen wir, abc.com, die Liste Änderungen wie folgt aussehen:

google.com -> youtube.com -> abc.com
                               ^
                               |
                          current page

Beachten Sie, dass beide yahoo.com und cnn.com werden aus der Liste verschwunden. Dies liegt daran, eine neue Route führte. Der Browser hält nur eine Liste mit den von Ihnen besuchten Seiten zu bekommen, wo Sie jetzt sind, nicht eine Geschichte jeder Seite, die Sie jemals waren. Der Browser weiß auch nicht alles über die Struktur der Website, die Sie gerade besuchen, die zu einem gewissen überraschenden Verhalten führen können.

Sie sind auf einer Shopping-Site (ne.com, als Kurz Beispiel), die durch Kategorien und Unterkategorien von Produkten zu suchen hat. Der Web-Designer hat nachdenklich zur Verfügung gestellt Paniermehl in der Nähe des oberen Rand des Fensters, damit Sie durch die Kategorien zu navigieren. Sie beginnen an der Spitze Seite der Website, auf Hardware klicken, dann auf Speicher. Die Liste sieht nun wie folgt aus:

google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem
                                           ^
                                           |
                                      current page

Sie wollen zurück in die Kategorie Hardware gehen, so verwenden Sie den Semmelbrösel in der übergeordneten Kategorie zu gehen, anstatt die Zurück-Taste verwenden. Nun ist die Browser-Liste sieht wie folgt aus:

google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw
                                                          ^
                                                          |
                                                     current page

Nach der Site-Struktur, ging man nach hinten (bis ein Niveau), aber an den Browser gingen Sie nach vorne, weil Sie auf einen Link geklickt. Jedes Mal, wenn Sie auf einen Link oder geben Sie eine URL in der Adressleiste, werden Sie nach vorne so weit wie der Browser betroffen ist, ob dieser Link führt zu einer Seite, die Sie haben bereits gewesen.

Schließlich wollen Sie auf die Hauptseite Seite zurückzukehren (ne.com). Sie könnten die Brotkrumen verwenden, aber dieses Mal sind Sie auf die Schaltfläche Zurück klicken - scheint es offensichtlich, dass es Ihnen eine Ebene nach oben nehmen sollte, nicht wahr? Aber woher kommt es dauern?

Es ist zunächst verwirrend für viele Nutzer (mich eingeschlossen, wenn ich zufällig tun dies genau), dass es Sie „down“ eine Ebene nimmt, zurück in die Speicherkategorie. Ein Blick auf die Liste der Seiten, es ist leicht zu sehen, warum:

google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw
                                            ^
                                            |
                                       current page

Um zurück zur Startseite geht nur die Zurück-Taste würde zwei weitere Pressen erfordern, Sie „zurück“ in die Kategorie Hardware nehmen und schließlich auf die Hauptseite. Es scheint so offensichtlich für uns Programmierer, was los ist, aber es überrascht das Heck aus der regelmäßigen Nutzer die ganze Zeit, weil sie nicht erkennen, dass der Browser nicht weiß nichts über die hierarchische Struktur von was auch immer Website sie sich gerade auf sein.

Wäre es toll, wenn Browser-Designer auf die Schaltfläche Zurück programmieren lassen würde die offensichtliche Sache zu tun (nehmen Sie eine Ebene nach oben) und nicht als das, was es jetzt tut?

Edit: fragte Ein Kommentator, ob der Browser die Seite neu geladen oder einfach zeigt sie aus dem lokalen Cache

.

Die Antwort ist es hängt davon ab. Site-Designer können angeben, ob der Browser die Seite oder nicht zwischenspeichern soll. Für Seiten, die als nicht im Cache gespeichert, lädt der Browser die Seite vom Server festgelegt werden, wenn Sie Zurück drücken, als ob es das erste Mal war Sie es besuchen. Für zwischengespeicherten Seiten, zeigt der Browser es aus dem Cache, der viel schneller ist.

Andere Tipps

Ich mag, daran denken, wie meine letzte Bitte Neuausstellung. Wenn Sie eine einfache GET ausgeführt, wäre es wahrscheinlich die gleiche Sache zurückkehren es beim letzten Mal (minus dynamische Inhalte). Wenn Sie eine POST getan hatten, Sie gehen das Formular (nach Bestätigung) an den Server erneut zu senden.

Die Grundidee ist zum letzten Seite oder logischen Standort Abteilung zurückzukehren.

bei Google Mail-Suche werden Sie sehen, wenn Sie eine Suche und klicken Sie auf eine Nachricht, dann die Zurück-Taste traf es Sie zurück auf die Suche übernehmen, die Sie getan haben.

Wenn Sie es in den meisten Browsern klicken, wird es entweder die letzte HTTP-Anforderung senden oder einen Cache geladen werden, wenn der Browser-Sites speichert.

Ich denke, der einfachste Weg, dies zu erklären, in Pseudo-Code ist:

class Page:
    String url, ...
    Page previous, next # implements a doubly-linked list

class History:
    Page current # current page

    void back():
        if current.previous == null:
            return
        current = current.previous
        refresh()

    void forward():
        if current.next == null:
            return
        current = current.next
        refresh()

    void loadPage(Page newPage):
        newPage.previous = current
        current.next = newPage # remove all the future pages
        current = current.next
        display(current)

Eine Geschichte der aufgerufenen Seiten in einem Stapel artige Form gehalten. Wenn Sie „Pop“ die ersten drei Seiten (A, B, C, zum Beispiel) und dann auf eine andere Seite D gehen, können Sie nicht wieder nach B nach vorne zu schlagen.

Als devoloper, sollten Sie sicherstellen, dass Ihre Webapp ganz gleich funktionieren, wie der Browser auf die Schaltfläche Zurück behandelt :-) er die Anforderung erneut senden Hat? Ist die neue Anforderung identisch mit dem alten, oder ist es in keiner Weise unterscheiden? Wird Browser fragen Benutzer Re-POST zu bestätigen? Welche Elemente der Seite wird erneut angefordert und was aus dem Cache geladen? Wird Browser meines Cache-Control-Header respektieren?

Die Antworten auf diese Frage hängt davon ab, make, Version eines Browsers und Benutzereinstellungen. Entwerfen Sie Software so, dass all dies spielt keine Rolle, dass viel.

Es tut uns nicht sehr direkte Antwort, aber es gibt einige klare Antworten hier schon.

ein Browser immer die Seiten für seine Erinnerung gespeichert, und wenn wir drücken Sie die Zurück-Taste es nicht die Anforderung an den Server für die vorherige Seite senden, anstatt sie seinen Cache nur sehen, wo sie die Seiten gespeichert und der LIFO-Regel folgen, warum es uns gibt die Seite zuerst auf die Zurück-Taste drücken, die wir in den letzten geöffneten

Der Browser die zuletzt gesehenen Seite vor der aktuellen lädt, und folgt dann eine beliebige Umleitung, die passieren könnte?

Ich scheine Art den Punkt der Frage zu fehlen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top