Czy zapisanie strony internetowej za pomocą Ctrl + S w Firefox powoduje, że przeglądarka ładuje stronę po raz drugi?


58

Kiedy zapisuję stronę internetową do czytania offline za pomocą Ctrl+ Sw Firefoksie, zauważam, że proces pobierania trwa kilka sekund, mimo że strona jest już załadowana.

Zastanawiam się, czy zapisanie takiej strony internetowej sprawi, że Firefox pobierze całą zawartość (HTML, obrazy, JavaScript, CSS itp.) Po raz drugi, czy też po prostu pobierze ją z już załadowanych plików w pamięci podręcznej.


Jak pamiętam, stare firefoxy ponownie załadowały stronę. Odpowiedzi dotyczą aktualnego firefoxa. Tak jest od kilku lat.
user259412

Czy możesz wyjaśnić, co nazywasz „procesem pobierania”? Mimo że zasoby znajdujące się w pamięci nie powinny być ponownie pobierane z sieci, przeglądarka nadal ma wiele do zrobienia, aby wyeksportować wszystkie dane do folderu + zmienić łącza itp. Ponadto, jeśli dysk pamięci został wstrzymany, może to potrwać trochę czasu, żeby się obudzić, żebyśmy mogli do niego napisać. Ale jeśli mówisz o panelu Biblioteka> Pliki do pobrania, który wymaga czasu i pokazuje coś w rodzaju 1,2 Mb / s, może to być związane z regresją , której nie uważali za błąd ...
Kaiido

4
Podczas gdy inni użytkownicy już dobrze na to odpowiedzieli, należy pamiętać, że katalogowanie takich zachowań na dowolnym oprogramowaniu może często być daremnym wysiłkiem, chyba że twórcy oprogramowania zapewnią gwarancję zachowania. Tak więc każda odpowiedź oznaczona jako poprawna powinna wskazywać na wersję, z którą była testowana, a nie przyjmować szerokiego założenia o wszystkich przyszłych i wcześniejszych wersjach. Dobrze, że najlepsza odpowiedź już rozwiązała ten problem. Wiem; Nitpicking.
Adnan Y

Chociaż wygląda na to, i pod każdym względem jest to „WTF”, w rzeczywistości jest tak, że było to zupełnie normalne dziesięć lat temu, nie tylko w Firefoksie. Nie pytaj mnie dlaczego, to nie ma żadnego sensu.
Damon

Odpowiedzi:


68

Nie, nie wyzwala drugiego żądania.

Właśnie przetestowałem to, uruchamiając prosty serwer HTTP do rejestrowania żądań. Serwer nie otrzymał drugiego żądania podczas zapisywania strony internetowej.

  • Testowane z: Firefox 61.0.1 (64-bit) na Ubuntu 18.04
  • Serwer: SimpleHTTPServer moduł Pythona 2.7.15 ( python -m SimpleHTTPServer 7070)

Edytować:

Komentatorzy pytali o inne zachowanie, jeśli serwer wysyła nagłówki „bez pamięci podręcznej”. Testowałem to z Pragma: No-Cachei Cache-Control: No-Cachewynik pozostaje taki sam.

Kod, który wykonałem podczas testu (poprzez tę odpowiedź ):

#!/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

Nie, nie ma.

Właśnie przetestowałem to bez żadnego kodu, odłączając komputer od Internetu, a następnie zapisując już załadowaną stronę internetową.

Zadziałało. Możesz sam wykonać ten sam test.


Przyznaję, że zachowanie może być inne, jeśli komputer jest online lub offline, ale obecna najlepsza odpowiedź pokazuje bardziej szczegółowy test. Myślę, że nadal warto mieć prosty test.


11
Jest tak wiele kombinacji Expires, Cache-control, Pragma i ewentualnie innych nagłówków, że „nie w tym pojedynczym przypadku” z pewnością nie oznacza „nigdy”. Nie patrząc na kod źródłowy, nie postawiłbym na nic.
Guntram Blohm

5
@GuntramBlohm, absolutnie słuszne. Z drugiej strony, jeśli prosty test się nie powiedzie, możesz ostatecznie stwierdzić, że Ctrl-S nie zawsze będzie działać bez wysłania dodatkowego żądania do serwera, nawet jeśli czasami może to zrobić. Zatem prosty test wciąż ma wartość; Byłem zaskoczony, że nikt o tym nie wspominał, więc zrobiłem to.
Wildcard

8

Czy zapisanie strony internetowej ( ctrls) powoduje, że Firefox pobiera całą zawartość po raz drugi?

Można to łatwo przetestować za pomocą narzędzi programistycznych Firefoksa .

  • Otwórz narzędzia i kliknij kartę „Sieć”.

  • Zapisz stronę

Zobaczysz, że nie generuje dodatkowego ruchu sieciowego.


50
Wątpię, czy w tym przypadku możemy polegać na narzędziach programistycznych. Pokazuje tylko ruch z jednej karty i nie sądzę, że pobieranie odbywa się w kontekście tej karty. Sądzę, że według twojego rozumowania, używając opcji „zapisz jako” z menu kontekstowego linku, którego nie odwiedziłeś, powinna pojawić się na karcie sieci - ale tak nie jest.
kapex

@kapex zrozumiał. Ale zapisz, jak na nie odwiedzonym linku, nie dzieje się w tym przypadku.
DavidPostill

5
@kapex Właśnie odłączyłem połączenie internetowe i nadal byłem w stanie poprawnie zapisać stronę ...
DavidPostill

11
Nie wątpię, że używa pamięci podręcznej, po prostu wątpię, aby użyć narzędzi programistycznych, aby to udowodnić. Spodziewałbym się, że zarówno „zapisz jako”, jak i „zapisz stronę” będą zachowywać się w ten sam sposób, ale oczywiście mogą występować różnice. Oto kolejny pomysł: jeśli wyłączymy buforowanie w narzędziach programistycznych, użycie ctrl + s z pewnością pojawi się na karcie sieci, ale znowu tak nie jest.
kapex

1
Będziesz musiał skorzystać z Przybornika przeglądarki, który pokazuje wszystkie żądania sieciowe z przeglądarki, w tym wewnętrzne niepowiązane z określoną stroną.
Neil


1

Możliwie.

CSS ma @mediaselektor. Pozwala CSS na używanie różnych definicji w zależności od rodzaju sprzętu używanego do wyświetlania strony - drukarka, ekrany o różnych rozmiarach itp.

CSS może również bezpośrednio żądać plików obrazów (obrazy punktorów, obrazy tła).

Teraz, jeśli Firefox wyświetla tylko to, co jest potrzebne do bieżącego sprzętu podczas wyświetlania strony, ale pobiera wszystko podczas zapisywania na dysku, możesz mieć dodatkowe żądania.

Zastrzeżenie:

To tylko pierwsza połowa praktycznie użytecznej odpowiedzi; druga połowa testowałaby ten scenariusz. Niestety brakuje mi czasu, więc zaakceptuję wszelkie zmiany lub komentarze, jeśli ktoś będzie mógł zgłosić powtarzalne wyniki testu.


Nie, wszystkie pliki CSS są pobierane, tylko nie przeanalizowane :)
Martijn
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.