Почему location.reload() работает медленнее, чем другие способы перезагрузки страницы?

Несколько месяцев назад я опубликовал этот ответ о том, как обновить страницу с помощью JavaScript.

Я предоставил JSFIDDLE DEMO:

var solutions = [
    function () { location.reload(); },
    function () { history.go(0); },
    function () { location.href = location.href; },
    function () { location.href = location.pathname; },
    function () { location.replace(location.pathname); },
    function () { location.reload(false); },
];

$("[data-func]").on("click", function () {
    solutions[parseInt($(this).attr("data-func"))]();
});

Кто-то заметил, что location.reload() медленнее, чем другие методы. Теперь я вижу то же самое.

Почему он медленнее? Почему другие быстрее?

Ответы

Ответ 1

Я искал это сам, и лучшая ссылка, которую я мог найти, на самом деле на w3schools.com

http://www.w3schools.com/jsref/met_loc_reload.asp

location.reload(forceGet)

forceGet:

false - По умолчанию. Перезагружает текущую страницу из кэша.

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

Ответ 2

Из сети разработки Mozilla я полагаю, что метод .reload может снова получить все файлы с сервера. Это будет похоже на перезагрузку CTRL + F5.

location.href, например, просто следует за ссылкой, которая может быть кэширована. Что касается определения MDN, поведение не определено четко, поэтому я предполагаю, что его браузер и конкретный случай ведут себя.