Как отметил Джон Резиг в одной из статей своего блога время javascripts не является точным. Часы, к которым вы можете получить доступ с помощью JavaScript, «тикают» каждые несколько миллисекунд. Это означает, что точное время может быть примерно на 7 мсек. Теперь, если ваш запрос занимает меньше этого небольшого промежутка времени (что может произойти, если он остается на локальном хосте), он может выглядеть так, как если бы он был получен до его отправки.
real time: 1000ms
js time: 1000ms
travel time: 5ms
real time: 1005ms
js time: 998ms // inaccuracy
difference: -2ms
Мы ничего не можем сделать, чтобы улучшить это, поскольку performance.now()
был отключен по соображениям безопасности. Так что единственное, что мы можем сделать, это ввести задержку в сети :), но тогда время часов, вероятно, больше не будет ...