MS Edge: при открытии панели инструментов разработчика все http-запросы выполняются дважды - PullRequest
0 голосов
/ 06 марта 2019

Используя MS Edge и apache с php, я только что открыл с помощью access.log, что когда у меня открыта панель отладки JavaScript (то есть панель разработчика), она делает каждый http-вызов дважды. Когда я закрыл эту панель, она исправила проблему вызова всех операторов вставки дважды.

Вопрос: происходит ли это удвоение http-вызовов в каждом / большинстве браузеров, на которые мне нужно обратить внимание, или это что-то особенное / уникальное в MS Edge?

1 Ответ

1 голос
/ 18 марта 2019

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

Причина, по которой инструментам браузера нужно сделать этот запрос, заключается в том, что браузеры часто выбрасывают исходный исходный файл, поскольку он не нуждается в нем для выполнения страницы, поскольку исходный код был проанализирован в другом месте, с которым он может работать ,

Однако после того, как вы откроете инструменты разработчика, браузер будет следить за источниками в будущих переходах, либо в интерфейсе инструментов, либо в другом месте. Не сохранять источники - это оптимизация для первого случая использования, чтобы браузеры не обращали внимания на источник при очень низких шансах инструмента, используемого при любой данной навигации.

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

В целом любые ресурсы на вашем сайте, к которым может получить доступ HTTP GET, должны быть идемпотентными. То есть GET не должен изменять запрашиваемый ресурс (или определять состояние вашего сайта), поэтому, надеюсь, дополнительные запросы не будут проблемой.

...