Я пытаюсь понять сетевые события инструментов ChromeDev для анализа производительности. В настоящее время я получаю эти события с помощью Selenium Webdriver, как также описано здесь :
this.Driver.Manage().Logs.GetLog("performance");
В основном меня интересуют только события
requestWillBeSent
(срабатывает, когда страница собирается отправить HTTP-запрос)
responseReceived
(срабатывает при наличии ответа HTTP)
dataReceived
(срабатывает при получении чанка данных по сети)
loadingFinished
(срабатывает после завершения загрузки HTTP-запроса)
См. Официальные документы к этому здесь .
Так что я понимаю, что событие loadingFinished
всегда отправляется как последнее событие запроса, однако иногда получаются такие значения.
{
"method": "Network.loadingFinished",
"params": {
"encodedDataLength": 12129,
"requestId": "1000005700.18",
"shouldReportCorbBlocking": false,
"timestamp": 605026.668895
}
}
{
"method": "Network.dataReceived",
"params": {
"dataLength": 0,
"encodedDataLength": 11825,
"requestId": "1000005700.18",
"timestamp": 605026.671788
}
}
Как видите, событие loadingFinished
имеет меньшую метку времени, чем событие dataReceived
.
Почему событие получения данных отправляется после события загрузки?
Какая связь между упомянутыми событиями?