Wird beim Speichern einer Webseite mit Strg + S in Firefox die Website ein zweites Mal geladen?

7474
4253wyerg4e

Beim Speichern einer Website zum Offline-Lesen mit Ctrl+ Sin Firefox stelle ich fest, dass der Downloadvorgang einige Sekunden dauert, obwohl die Webseite bereits geladen ist.

Ich frage mich, ob Firefox das Speichern der Webseite dazu veranlasst, den gesamten Inhalt (HTML, Bilder, JavaScript, CSS usw.) ein zweites Mal abzurufen, oder ob der Inhalt von den bereits geladenen Dateien im Cache abgerufen wird.

58
Soweit ich mich erinnere, haben alte Firefox die Seite neu geladen. Die Antworten beziehen sich auf das aktuelle Firefox. Es ist schon seit einigen Jahren so. peterh vor 5 Jahren 0
Könnten Sie erklären, was Sie "den Download-Prozess" nennen? Auch wenn die im Speicher befindlichen Ressourcen nicht erneut aus dem Netzwerk heruntergeladen werden sollen, hat der Browser noch einige Schritte zu unternehmen, um alle Daten in einem Ordner zu exportieren + Verknüpfungen usw. zu ändern. Wenn der Speicherdatenträger angehalten wurde, kann dies jedoch dauern Einige Zeit, um es aufzuwecken, damit wir darauf schreiben können. Wenn Sie jedoch davon sprechen, dass das Panel Library> Downloads Zeit benötigt und etwas wie 1,2 MBit / s anzeigt, könnte dies mit dieser Regression zusammenhängen (https://bugzilla.mozilla.org/show_bug.cgi?id=1425208) habe nicht gedacht, ein Fehler zu sein ... Kaiido vor 5 Jahren 0
Während andere Benutzer dies bereits treffend beantwortet haben, ist zu beachten, dass das Katalogisieren eines solchen Verhaltens in einer Software oftmals vergeblich ist, es sei denn, eine Verhaltensgarantie wird von den Software-Entwicklern bereitgestellt. Daher sollte jede Antwort, die als richtig markiert ist, auf die Version verweisen, mit der sie getestet wurde, statt eine allgemeine Annahme über alle zukünftigen und früheren Versionen zu machen. Gut, dass die erste Antwort dieses Anliegen bereits angesprochen hat. Ich kenne; pingelig. Adnan Y vor 5 Jahren 4
Obwohl dies wie eine "WTF" aussieht und in jedem Fall eine "WTF" ist, ist die Realität der Meinung, dass dies vor etwa zehn Jahren völlig normal war, nicht nur bei Firefox. Frag mich nicht warum, es macht überhaupt keinen Sinn. Damon vor 5 Jahren 0

5 Antworten auf die Frage

68
McFarlane

Nein, es wird keine zweite Anfrage ausgelöst.

Ich habe es gerade getestet, indem ich einen einfachen HTTP-Server zum Protokollieren der Anforderungen ausgeführt habe. Der Server hat beim Speichern der Website keine zweite Anforderung erhalten.

  • Getestet mit: Firefox 61.0.1 (64-Bit) auf Ubuntu 18.04
  • Server: SimpleHTTPServer-Modul von Python 2.7.15 ( python -m SimpleHTTPServer 7070)

Bearbeiten:

Die Kommentatoren fragten nach einem anderen Verhalten, wenn der Server "No-Cache" -Header sendet. Ich habe es mit Pragma: No-Cacheund getestet Cache-Control: No-Cacheund das Ergebnis bleibt gleich.

Der Code, den ich für den Test verwendet habe (über diese Antwort ):

#!/usr/bin/env python import SimpleHTTPServer  class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def end_headers(self): self.send_my_headers()  SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)  def send_my_headers(self): self.send_header("Pragma", "No-Cache") self.send_header("Cache-Control", "No-Cache")   if __name__ == '__main__': SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler) 
11
Wildcard

Nein, das stimmt nicht.

Ich habe dies gerade ohne Code getestet, indem ich meinen Computer vom Internet getrennt und dann eine bereits geladene Webseite gespeichert habe.

Es funktionierte. Sie können den gleichen Test selbst durchführen.


Zugegeben, das Verhalten könnte anders sein, wenn der Computer online oder offline ist, aber die aktuelle Antwort zeigt einen tiefer gehenden Test. Ich denke nur, dass es immer noch wertvoll ist, einen einfachen Test zu haben .

Es gibt so viele Kombinationen von Expires, Cache-Control, Pragma und möglicherweise anderen Headern, dass "nicht in diesem Einzelfall" sicherlich nicht "nie" bedeutet. Ohne den Quellcode zu betrachten, würde ich auf nichts wetten. Guntram Blohm vor 5 Jahren 11
@GuntramBlohm, absolut richtig. Wenn der einfache Test * jedoch fehlschlägt, können Sie definitiv davon ausgehen, dass Ctrl-S nicht immer funktioniert, ohne dass eine zusätzliche Anforderung an den Server gesendet wird, auch wenn dies manchmal der Fall ist. Der einfache Test hat also immer noch einen Wert. Ich war überrascht, dass kein anderer es erwähnt hatte, also tat ich es. Wildcard vor 5 Jahren 5
8
DavidPostill

Wird beim Speichern einer Webseite ( ctrls) der Inhalt zum zweiten Mal abgerufen?

Dies kann einfach mit den Firefox- Entwicklerwerkzeugen getestet werden .

  • Öffnen Sie die Tools und klicken Sie auf die Registerkarte "Netzwerk".

  • Speichern Sie die Seite

Sie werden sehen, dass kein zusätzlicher Netzwerkverkehr generiert wird.

Ich bezweifle, dass wir uns in diesem Fall auf die Entwickler-Tools verlassen können. Es zeigt nur den Verkehr von einer einzigen Registerkarte an und ich denke nicht, dass der Download im Kontext dieser Registerkarte ausgeführt wird. Ihrer Meinung nach sollte "Speichern unter" aus dem Kontextmenü eines Links, den Sie nicht besucht haben, auf der Registerkarte "Netzwerk" angezeigt werden. Dies ist jedoch nicht der Fall. kapex vor 5 Jahren 50
@kapex verstanden. Aber wie bei einem nicht besuchten Link ist es nicht, was in diesem Fall passiert. DavidPostill vor 5 Jahren 0
@kapex Ich habe gerade meine Internetverbindung getrennt und konnte trotzdem eine Seite korrekt speichern ... DavidPostill vor 5 Jahren 5
Ich bezweifle nicht, dass der Cache verwendet wird. Ich bezweifle nur, dass die Entwicklerwerkzeuge zum Beweis verwendet werden können. Ich würde erwarten, dass sich "Speichern unter" und "Seite speichern" auf dieselbe Weise verhalten, aber es könnte natürlich Unterschiede geben. Hier also eine andere Idee: Wenn wir die Zwischenspeicherung in den Entwicklertools deaktivieren, sollte die Verwendung von Strg + s auf jeden Fall auf der Registerkarte "Netzwerk" angezeigt werden. Dies geschieht jedoch nicht. kapex vor 5 Jahren 11
Sie müssten die Browser Toolbox verwenden, die alle Netzwerkanforderungen des Browsers anzeigt, einschließlich interner, die nicht an eine bestimmte Seite gebunden sind. Neil vor 5 Jahren 1
Der beste Weg, dies zu überprüfen, wäre mit so etwas wie einem Geiger, der alle Netzwerkaktivitäten abfängt ... Laurent S. vor 5 Jahren 0
2
wdkmaaeo

Im Gegensatz zu den anderen Antworten lädt Firefox 59.0 ein zweites Mal für (in meinem Test) Bilder herunter, aber keine HTML-Dateien.

Ich habe ein beliebiges Bild ( https://cdn.shopify.com/s/files/1/1613/3867/products/GS_cat_feeding_reminder_forget_someone.png?v=1520745318 ) geladen und mit ctrl+ gespeichert s.

1
toolforger

Möglicherweise.

CSS hat einen @mediaSelektor. Es erlaubt dem CSS, unterschiedliche Definitionen zu verwenden, abhängig davon, welche Art von Hardware für die Anzeige der Seite verwendet wird - Drucker, Bildschirme unterschiedlicher Größe usw.

CSS kann auch direkt Bilddateien anfordern (Aufzählungszeichen, Hintergrundbilder).

Wenn Firefox jetzt nur das herunterlädt, was für die aktuelle Hardware beim Anzeigen der Seite benötigt wird, aber beim Speichern auf die Festplatte alles herunterlädt, können Sie zusätzliche Anforderungen haben.

Vorbehalt:

Dies ist nur die erste Hälfte einer praktisch nützlichen Antwort. Die zweite Hälfte würde dieses Szenario testen. Leider läuft mir die Zeit davon, daher akzeptiere ich alle Bearbeitungen oder Kommentare, falls jemand wiederholbare Testergebnisse melden kann.

Nein, alle CSS-Dateien werden heruntergeladen, nur nicht analysiert :) Martijn vor 5 Jahren 0