Il salvataggio di una pagina Web usando Ctrl + S in Firefox fa caricare il sito una seconda volta?


58

Quando si salva un sito Web per la lettura offline con Ctrl+ Sin Firefox, noto che il processo di download impiega alcuni secondi per terminare sebbene la pagina Web sia già caricata.

Mi chiedo se il salvataggio della pagina Web in questo modo consentirà a Firefox di recuperare tutto il contenuto (HTML, immagini, JavaScript, CSS, ecc.) Una seconda volta, o se lo otterrà solo dai file già caricati nella cache.


Come ricordo, i vecchi firefox ricaricarono la pagina. Le risposte sono per l'attuale Firefox. È da alcuni anni così.
user259412

Potresti chiarire quello che chiami "il processo di download"? Anche se le risorse in memoria non devono essere scaricate nuovamente dalla rete, il browser deve ancora fare cose per esportare tutti i dati in una cartella + cambiare i collegamenti ecc. Inoltre, se il disco di archiviazione è stato messo in pausa, potrebbe richiedere un po 'di tempo solo per svegliarlo, così possiamo scriverlo. Ma se stai parlando del pannello Libreria> Download che richiede tempo e mostra qualcosa come 1.2 Mbps, allora potrebbe essere correlato a questa regressione che non hanno considerato un bug ...
Kaiido,

4
Mentre altri utenti hanno già risposto in modo appropriato, nota che catalizzare tale comportamento su qualsiasi software può spesso essere uno sforzo inutile a meno che se gli sviluppatori di software non forniscano una garanzia di comportamento. E quindi qualsiasi risposta contrassegnata come corretta dovrebbe puntare alla versione contro cui è stata testata piuttosto che fare un ampio presupposto su tutte le versioni future e passate. Meno male che la risposta principale ha già affrontato questa preoccupazione. Lo so; pignolo.
Adnan Y,

Anche se questo sembra, e sicuramente è un "WTF", la realtà dice che questo era perfettamente normale un decennio fa, non solo con Firefox. Non chiedermi perché, non ha alcun senso.
Damon,

Risposte:


68

No, non attiva una seconda richiesta.

L'ho appena provato eseguendo un semplice server HTTP per registrare le richieste. Il server non ha ricevuto una seconda richiesta durante il salvataggio del sito Web.

  • Testato con: Firefox 61.0.1 (64 bit) su Ubuntu 18.04
  • Server: modulo SimpleHTTPServer di python 2.7.15 ( python -m SimpleHTTPServer 7070)

Modificare:

I commentatori hanno chiesto comportamenti diversi se il server sta inviando intestazioni "no-cache". L'ho provato con Pragma: No-Cachee Cache-Control: No-Cachee il risultato rimane lo stesso.

Il codice che ho usato per fare il test (tramite questa risposta ):

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

No, non lo fa.

Ho appena provato questo senza alcun codice disconnettendo il mio computer da Internet e quindi salvando una pagina Web già caricata.

Ha funzionato. Puoi fare tu stesso lo stesso test.


Concesso che il comportamento potrebbe essere diverso se il computer è online o offline, ma l' attuale risposta in alto mostra un test più approfondito. Penso solo che sia ancora utile fare un semplice test.


11
Ci sono così tante combinazioni di Expires, Cache-control, Pragma e possibilmente altre intestazioni, che "non in questo singolo caso" certamente non significa "mai". Senza guardare il codice sorgente, non scommetterei su niente.
Guntram Blohm sostiene Monica il

5
@GuntramBlohm, assolutamente giusto. D'altra parte, se il semplice test fallisce, allora puoi concludere definitivamente che Ctrl-S non funzionerà sempre senza inviare una richiesta aggiuntiva al server, anche se a volte potrebbe farlo. Quindi il semplice test ha ancora valore; Fui sorpreso che nessun altro lo avesse menzionato, così feci.
Wildcard il

8

Il salvataggio di una pagina Web ( ctrls) fa sì che Firefox recuperi tutto il contenuto una seconda volta?

Questo è facilmente testato usando gli strumenti per sviluppatori di Firefox .

  • Apri gli strumenti e fai clic sulla scheda "Rete".

  • Salva la pagina

Vedrai che non viene generato traffico di rete aggiuntivo.


50
Dubito che in questo caso possiamo contare sugli strumenti per sviluppatori. Mostra solo il traffico da una singola scheda e non credo che il download sia in esecuzione nel contesto di quella scheda. Secondo il tuo ragionamento, usando "salva come" dal menu di scelta rapida su un link che non hai visitato, dovrei apparire nella scheda di rete, ma non è così.
Kapex,

@kapex Capito. Ma salvare come su un collegamento non visitato non è ciò che sta accadendo in questo caso.
David Post

5
@kapex Ho appena disconnesso la mia connessione Internet ed è stato ancora in grado di salvare correttamente una pagina ...
DavidPostill

11
Non sto dubitando che usi la cache, sto solo dubitando che gli strumenti di sviluppo possano essere usati per dimostrarlo. Mi aspetto che sia "save as" che "save page" si comportino allo stesso modo, ma ovviamente potrebbero esserci delle differenze. Quindi, ecco un'altra idea: se disabilitiamo la memorizzazione nella cache negli strumenti di sviluppo, l'uso di ctrl + s dovrebbe certamente apparire nella scheda di rete, ma di nuovo no.
Kapex,

1
Dovresti utilizzare la casella degli strumenti del browser, che mostra tutte le richieste di rete dal browser, comprese quelle interne non legate a una pagina specifica.
Neil,


1

Possibilmente.

CSS ha un @mediaselettore. Consente al CSS di utilizzare definizioni diverse a seconda del tipo di hardware utilizzato per visualizzare la pagina: stampante, schermi di dimensioni diverse, ecc.

I CSS possono anche richiedere direttamente file di immagini (immagini puntate, immagini di sfondo).

Ora se Firefox scarica esattamente ciò che è necessario per l'hardware corrente durante la visualizzazione della pagina, ma scarica tutto durante il salvataggio su disco, allora puoi avere richieste extra.

Avvertimento:

Questa è solo la prima metà di una risposta praticamente utile; la seconda metà testerebbe questo scenario. Sfortunatamente, sto esaurendo il tempo, quindi accetterò eventuali modifiche o commenti se qualcuno può segnalare risultati di test ripetibili.


No, tutti i file CSS vengono scaricati, ma non analizzati :)
Martijn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.