103 Stimmen

Wie funktioniert die Schaltfläche "Zurück" in einem Webbrowser?

Ich habe im Internet nach dieser Frage gesucht, aber nichts gefunden:

Was ist die Logik der Zurück-Taste? Was passiert, wenn wir in einem Webbrowser auf die Schaltfläche "Zurück" klicken?

Ich würde wirklich gerne mehr darüber erfahren.

Ich danke Ihnen.

116voto

Barry Brown Punkte 19577

Ihr Webbrowser speichert einen Stapel (oder eine Liste, wenn Sie so wollen) der Webseiten, die Sie in diesem Fenster besucht haben. Nehmen wir an, Ihre Startseite ist google.com und von dort aus besuchen Sie einige andere Websites: youtube.com, yahoo.com und cnn.com. Wenn Sie die letzte Seite besuchen, sieht die Liste wie folgt aus:

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

Wenn Sie auf die Schaltfläche "Zurück" klicken, kehren Sie zur vorherigen Seite in der Liste zurück, etwa so:

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

An diesem Punkt können Sie erneut auf Zurück drücken, um zu youtube.com zu gelangen, oder auf Vorwärts, um wieder zu cnn.com zu gelangen. Angenommen, Sie drücken ein zweites Mal auf Zurück:

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

Wenn Sie nun z. B. abc.com aufrufen, sieht die Liste wie folgt aus:

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

Beachten Sie, dass sowohl yahoo.com als auch cnn.com nicht mehr in der Liste enthalten sind. Das liegt daran, dass Sie eine neue Route genommen haben. Der Browser führt nur eine Liste der Seiten, die Sie besucht haben, um dorthin zu gelangen, wo Sie sich jetzt befinden, nicht aber einen Verlauf aller Seiten, die Sie jemals besucht haben. Der Browser weiß auch nichts über die Struktur der Website, die Sie gerade besuchen, was zu einem überraschenden Verhalten führen kann.

Sie befinden sich auf einer Shopping-Website (z. B. ne.com), auf der es Kategorien und Unterkategorien mit Produkten gibt, die Sie durchstöbern können. Der Gestalter der Website hat mit Bedacht Folgendes vorgesehen Semmelbrösel am oberen Rand des Fensters, um durch die Kategorien zu navigieren. Beginnen Sie auf der ersten Seite der Website und klicken Sie auf Hardware und dann auf Speicher. Die Liste sieht nun wie folgt aus:

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

Sie möchten zur Kategorie Hardware zurückkehren, also verwenden Sie die Breadcrumbs, um zur übergeordneten Kategorie zu gelangen, anstatt die Schaltfläche Zurück zu verwenden. Jetzt sieht die Browserliste wie folgt aus:

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

Der Website-Struktur zufolge sind Sie rückwärts gegangen (eine Ebene höher), aber für den Browser sind Sie vorwärts gegangen, weil Sie auf einen Link geklickt haben. Jedes Mal, wenn Sie auf einen Link klicken oder eine URL in die Adressleiste eingeben, bewegen Sie sich für den Browser vorwärts, unabhängig davon, ob dieser Link Sie zu einer Seite führt, auf der Sie bereits waren.

Schließlich möchten Sie zur Hauptseite der Website (ne.com) zurückkehren. Sie könnten die Breadcrumbs verwenden, aber dieses Mal klicken Sie auf die Schaltfläche "Zurück" - es scheint offensichtlich, dass Sie damit eine Ebene nach oben gelangen sollten, oder? Aber wohin führt er Sie?

Für viele Benutzer (mich eingeschlossen, wenn ich genau das tue) ist es zunächst verwirrend, dass man eine Ebene nach unten, zurück zur Kategorie Speicher, gelangt. Wenn man sich die Liste der Seiten ansieht, ist es leicht zu verstehen, warum:

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

Um nur mit der Schaltfläche "Zurück" zur Hauptseite zu gelangen, müssten Sie zwei weitere Male auf die Schaltfläche "Zurück" drücken, die Sie zur Kategorie "Hardware" und schließlich zur Hauptseite führt. Für uns Programmierer scheint es so offensichtlich zu sein, aber normale Benutzer sind immer wieder überrascht, weil sie nicht wissen, dass der Browser nichts über die hierarchische Struktur der Website weiß, auf der sie sich gerade befinden.

Wäre es nicht toll, wenn die Browser den Website-Designern erlauben würden, die Schaltfläche "Zurück" so zu programmieren, dass sie das Offensichtliche tut (eine Ebene höher gehen), anstatt das, was sie jetzt tut?

Edit: Ein Kommentator fragte, ob der Browser die Seite neu lädt oder sie einfach aus seinem lokalen Cache anzeigt.

Die Antwort lautet: Es kommt darauf an. Website-Designer können festlegen, ob der Browser die Seite zwischenspeichern soll oder nicht. Bei Seiten, die nicht zwischengespeichert werden, lädt der Browser die Seite vom Server neu, wenn Sie auf "Zurück" drücken, als ob Sie die Seite zum ersten Mal besuchen würden. Bei Seiten, die im Cache gespeichert sind, zeigt der Browser die Seite aus dem Cache an, was wesentlich schneller ist.

5voto

John Hoven Punkte 4045

Ich betrachte es als eine Wiederholung meiner letzten Bitte. Bei einer einfachen GET-Anfrage würde wahrscheinlich das Gleiche zurückgegeben wie beim letzten Mal (ohne dynamische Inhalte). Bei einem POST würden Sie das Formular (nach der Bestätigung) erneut an den Server übermitteln.

2voto

Imagist Punkte 17215

Ich denke, am einfachsten lässt sich dies in Pseudocode erklären:

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)

1voto

BobBrez Punkte 723

Die Grundidee besteht darin, zur letzten Seite oder logischen Unterteilung der Website zurückzukehren.

Wenn Sie in Google Mail eine Suche durchführen, auf eine Nachricht klicken und dann auf die Schaltfläche "Zurück" klicken, kehren Sie zu der von Ihnen durchgeführten Suche zurück.

Wenn Sie darauf klicken, wird in den meisten Browsern entweder die letzte http-Anfrage erneut gesendet oder ein Cache geladen, wenn der Browser Websites in den Cache stellt.

1voto

kajaco Punkte 2527

Die Historie der aufgerufenen Seiten wird in Form eines Stapels gespeichert. Wenn Sie die ersten drei Seiten (z. B. A, B, C) "aufklappen" und dann zu einer anderen Seite D wechseln, können Sie nicht mehr zu B zurückkehren, indem Sie auf vorwärts drücken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X