Performance (rozszerzenie)#
Performance.now()#
Metoda now()
zwraca liczbę rzeczywistą reprezentującą czas wysokiej rozdzielczości jaki upłynął względem czasu rozpoczęcia nawigacji dokumentu.
Składnia#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var time = window.performance.now();
gdzie poszczególne człony oznaczają:
time
- czas wysokiej rozdzielczości w postaci liczby rzeczywistej.window
- okno będące obiektem kontekstu.
Algorytm wywołania metody now()
nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- Zwróć wartość typu
DOMHighResTimeStamp
reprezentującą czas w milisekundach jaki upłynął od czasu pochodzenia do wystąpienia wywołania metodynow()
.
Wartość czasu zwracana przez metodę now()
musi być monotonicznie rosnąca i nie może podlegać regulacjom zegara systemowego lub synchronizacjom zegara systemowego (np. protokołem NTP). Różnica pomiędzy dwoma chronologicznie zapisanymi wartościami czasowymi zwracanymi przez metodę now()
nie może być nigdy negatywna - chociaż 0
może się przytrafić jeśli np. wywołamy metodę now()
jedna za drugą (tak dzieje się w przypadku przeglądarki Chrome).
Prosty przykład:
<!DOCTYPE html>
<html>
<head>
<script>
function measureTime(){
var info = document.getElementById("info");
info.innerHTML += performance.now() + "<br>";
}
</script>
</head>
<body>
<p>Kliknij w przycisk by dokonać nowego pomiaru czasu wysokiej rozdzielczości.</p>
<input type="button" value="Performance.now()" onclick="measureTime()">
<p style="color: blue;">Szczegółowe informacje:</p>
<p id="info"></p>
</body>
</html>
Interfejs Web IDL#
DOMHighResTimeStamp now();