Понимание таймингов производительности, загрузкаПодготовка против данныхПолученный заказ - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь понять сетевые события инструментов 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.

Почему событие получения данных отправляется после события загрузки?
Какая связь между упомянутыми событиями?

...