58

При сохранении веб-сайта для чтения в автономном режиме с помощью Ctrl+S в Firefox я заметил, что процесс загрузки занимает несколько секунд, хотя веб-страница уже загружена.

Мне интересно, будет ли сохранение веб-страницы таким образом, чтобы Firefox извлекал весь контент (HTML, изображения, JavaScript, CSS и т.д.) Во второй раз, или он просто получит его из уже загруженных файлов в кеше.

5 ответов5

68

Нет, это не вызывает второй запрос.

Я только что проверил это, запустив простой HTTP-сервер для регистрации запросов. Сервер не получил второй запрос при сохранении сайта.

  • Протестировано с: Firefox 61.0.1 (64-разрядная версия) в Ubuntu 18.04
  • Сервер: SimpleHTTPServer модуль python 2.7.15 (python -m SimpleHTTPServer 7070)

Редактировать:

Комментаторы спрашивали о различном поведении, если сервер отправляет заголовки без кэширования. Я протестировал его с помощью Pragma: No-Cache и Cache-Control: No-Cache и результат остался прежним.

Код, который я использовал для теста (через этот ответ):

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

Нет, это не так.

Я только что проверил это без какого-либо кода, отключив мой компьютер от Интернета, а затем сохранив уже загруженную веб-страницу.

Это сработало. Вы можете сделать тот же тест самостоятельно.


Конечно, поведение может отличаться, если компьютер подключен к сети или отключен, но текущий топ-ответ показывает более углубленный тест. Я просто думаю, что все еще полезно иметь простой тест.

8

Сохраняет ли Firefox сохранение веб-страницы (ctrl s ) во второй раз?

Это легко проверить с помощью инструментов разработчика Firefox.

  • Откройте инструменты и перейдите на вкладку "Сеть".

  • Сохранить страницу

Вы увидите, что дополнительный сетевой трафик не генерируется.

2

В отличие от других ответов, Firefox 59.0 второй раз загружает (в моем тестировании) изображения, но не файлы HTML.

Я загрузил произвольное изображение (https://cdn.shopify.com/s/files/1/1613/3867/products/GS_cat_feeding_reminder_forget_someone.png?v=1520745318) и использовал Ctrl+s для его сохранения.

1

Возможно.

У CSS есть селектор @media . Это позволяет CSS использовать различные определения в зависимости от того, какое оборудование используется для отображения страницы - принтер, экраны разных размеров и т.д.

CSS также может напрямую запрашивать файлы изображений (точечные изображения, фоновые изображения).

Теперь, если Firefox загружает только то, что нужно для текущего оборудования при отображении страницы, но загружает все при сохранении на диск, тогда у вас могут быть дополнительные запросы.

Предостережение:

Это только первая половина практически полезного ответа; вторая половина будет проверять этот сценарий. К сожалению, у меня не хватает времени, поэтому я приму любые изменения или комментарии, если кто-то сможет сообщить повторяемые результаты теста.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .