# Navigation timing API

Navigation timing - javascript API для измерения производительности веб приложений, утвержденный организацией W3C в качестве стандарта.

Navigation timing предоставляет простой и прямой способ получения точных данных о загрузке страницы (page navigation) и событиях при загрузке страницы (load events). Этот API доступен в IE 9, firefox, chrome и webkit-based браузерах.

Доступ к API можно получить через свойства интерфейса `window.performance.timing` с помощью javascript. Каждый атрибут объекта `performance.timing` хранит время того или иного навигационного события, когда был послан запрос на сервер (request), в милисекундах в формате UTC (в миллисекундах с первого января 1970 года). Ноль означает, что событие не произошло.

Очередность событий при загрузке страницы изображена на диаграмме: ![](/files/-LFXZu9YPH1w941AVEy9)

Более подробно про эти события можно прочитать в самом стандарте Navigation Timing: <http://www.w3.org/TR/navigation-timing/>

Пример:

```
@Test
public void testLogin() {
    Webdriver driver = new FirefoxDriver();
    driver.get(SOME_URL);
    JavascriptExecutor js = (JavascriptExecutor) driver;
    // Получаем время Load Event End (окончание загрузки страницы)
    long loadEventEnd = (Long) js.executeScript("return window.performance.timing.loadEventEnd;");
    // Получаем Navigation Event Start (начало перехода)
    long navigationStart = (Long) js.executeScript("return window.performance.timing.navigationStart;");
    // Разница между Load Event End и Navigation Event Start - это время загрузки страницы
    System.out.println("Page Load Time is " + (loadEventEnd - navigationStart)/1000 + " seconds.");
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://comaqa.gitbook.io/selenium-webdriver-lectures/selenium-webdriver.-testirovanie-klientskoi-proizvoditelnosti/navigation-timing-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
