Точность этого кода должна быть менее 5 миллисекунд. Но почему бы и нет? - PullRequest
0 голосов
/ 07 апреля 2020

Нажмите Точность этого кода должна быть менее 5 миллисекунд. Но почему бы и нет? Я не могу понять, почему результат потребляется, например, -16! Кто-нибудь может предложить лучшее для этой цели или исправить это? пожалуйста

var btns = document.getElementsByClassName('x-btn-inner x-btn-inner-default-medium x-rtl')
var targetBtn;
for (let i =0 ; i< btns.length; i++) 
{
    if(btns[i].innerText === 'ok') 
    {
        targetBtn = btns[i];
    }
}
var    target = new Date();

target.setHours(10);
target.setMinutes(29);
target.setSeconds(59);
target.setMilliseconds(980); 

setInterval(func, 5);
function func() 
{
    var jnow = new Date();      //get current time
    var diff = (target-jnow);   // result in milisecond
    if(diff <= 0 &&  diff > -500) 
    {
        targetBtn.click();
        //alert(diff);
        console.log(diff);

    }
} 

1 Ответ

0 голосов
/ 07 апреля 2020

В браузерах введена уменьшенная точность времени, чтобы предотвратить отслеживание пользователей на основе скорости, с которой их браузер отвечает на запросы времени в миллисекундах.

https://developer.mozilla.org/en-US/docs/Web/API/Performance/now

По сути, браузер может отслеживать пользователя, который не хочет, чтобы его отслеживали, проверяя, насколько быстро работает его компьютер. Так что создатели веб-браузеров теперь круглые сутки.

...