6

Эти две вещи делают одно и то же?

  1. Нажатие клавиши F5
  2. Нажмите на адресную строку (выделите ее), затем нажмите клавишу ВВОД.

Я спрашиваю об этом, потому что мне кажется, что первый метод требует больше времени для обновления страницы в Chrome. Напротив, в Firefox первый метод требует меньше времени для обновления страницы.

Ответьте, пожалуйста, за последние версии Mozilla Firefox и Google Chrome.

2 ответа2

5
  1. F5 (Обновить / Обновить) повторно отправляет текущий запрос, включая любые данные POST (отправленная форма). Будет использован кеш браузера.

  2. Нажатие ENTER в адресной строке делает новый запрос для этого URL. Данные формы не отправляются повторно. Будет использован кеш браузера.

Я не уверен, почему есть разница в производительности между Chrome и Firefox с этими двумя методами. Я подозреваю, что это связано с различиями в их механизмах кэширования.

2

Хотя утверждение w3d о том, что и F5, и enter будут использовать кеш, технически в основном верно, оно вводит в заблуждение. Дьявол кроется в деталях.

При нажатии клавиши ввода браузер может загружать любые ресурсы из кэша, не перепроверяя их в зависимости от срока действия (заголовок http Expires ) и других заголовков http. Это означает, что большинство ресурсов могут быть загружены так же быстро, как диск или ОЗУ, могут реагировать, возможно, менее чем за 1 мс, если ресурс находится в ОЗУ.

С другой стороны, нажатие клавиши F5 всегда отправляет запрос на сервер с заголовком запроса If-Modified-Since с отметкой времени текущей кэшированной версии ресурса. Затем сервер либо ответит кодом состояния 200 OK за которым следуют данные, либо кодом состояния 304 Not Modified . Для статического ресурса это, скорее всего, будет статус 304 и браузер загрузит ресурс из кеша. Другими словами, браузер не может загружать ресурс из кеша, пока не получит ответ от сервера. Таким образом, при нажатии клавиши F5, даже если ресурс может быть не полностью передан повторно, время загрузки ресурса по-прежнему зависит от задержки в сети и времени ответа сервера. Это может занять 50-100 мс или более на ресурс.

Такое поведение можно наблюдать с помощью сетевой функции встроенных в браузер инструментов разработки. Вы можете открыть инструменты разработки самостоятельно, нажав control+shift+I, выбрав сеть и наблюдая за тем, что происходит, когда вы перезагружаете страницу различными способами. В Chrome вы увидите, что при нажатии Enter ресурсы, загруженные непосредственно из кеша, будут иметь статус 200 OK и размер (from cache) . В Firefox ресурсы, загруженные непосредственно из кэша, даже не отображаются в представлении сети. При нажатии F5, с другой стороны, запросы отправляются на сервер для всех ресурсов, которые в основном будут отвечать со статусом 304 .

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