Подтвердить что ты не робот

Почему создание окна происходит медленнее, чем перезагрузка

Контекст. Я собираюсь объяснить контекст этого вопроса, но я думаю, что ответ на вопрос не очень специфичен для контекста.

У меня есть справочная страница в хромированном расширении хром. Страница делает следующее:

chrome.commands.onCommand.addListener(function(){
    chrome.windows.create({
        url:"page.html",
        type:'popup'
    });
});

Как вы можете видеть, это создает новое окно, загружающее файл page.html из моего расширения, когда пользователь запускает команду (с помощью горячей клавиши).

Страница page.html - довольно тяжелая страница. Он запускает кучу скриптов (все из каталога расширений) и множество изображений (также все из каталога расширений).

Punchline контекста. Важно то, что страница загружается полностью локально. Ничто (до входа пользователя) не вызывается в Интернет, и он загружается просто отлично, когда я в автономном режиме.

Вопрос:

  • Когда я загружаю окно путем запуска события, как описано выше, требуется некоторое время для загрузки, скажем, может быть, 1,5 секунды. Если я обновляю новое окно (page.html), он загружается менее чем за 0,5 секунды. Что вызывает эту разницу во времени?
  • Как я могу использовать более быструю частоту обновления, чтобы ускорить загрузку начальной страницы? Могу ли я загрузить скрытую версию? Или пререндеру это как-то? Любые предложения будут оценены.
4b9b3361

Ответ 1

Относительно первого вопроса:

Обновление страницы не приведет к повторному инициализации всего (например, механизма рендеринга). В зависимости от реализации браузера браузер хранит много ресурсов в кеше, и при повторном доступе к тому же URL-адресу (обновление страницы в этом случае) ресурсы загружаются из кеша, что происходит быстрее. Отсюда вытекает различие во времени.

Относительно второго вопроса:

Ответ @elfin forest может дать вам некоторое представление.

Ответ 2

Если вы нажмете на кнопку "Обновить", когда инструменты разработчика открыты, вы получите три варианта.

Нормальная перезагрузка

Это значение по умолчанию (нажатие F5). Это будет использовать кеш, но повторить все во время загрузки страницы, ища ответ "304 Not Modified". Если браузер может избежать повторной загрузки кешированных файлов JavaScript, изображений, текстовых файлов и т.д., То это произойдет. Вероятно, это причина, по которой вы получаете разницу в скорости.

Жесткая перезагрузка

Не использует ничего в кеше при выполнении запроса. Это заставляет браузер повторно загружать каждый файл JavaScript, изображение, текстовый файл и т.д.

Пустой кэш и жесткий перезапуск

Это третий вариант, и он очищает кеш, а затем перезагружается.

Попробуйте остальные две формы перезагрузки, а затем сообщите, если разница в скорости все еще заметна.

Ответ 3

Когда вы обновляете страницу, у Google уже есть все данные, необходимые для запуска script. Это означает, что когда вы refrsh script, все, что он должен сделать, запускается таким образом, удаляя 1 секунду, чтобы собрать данные.