JS에서 Date.now() 함수로 이상한 오류가 발생했습니다.JavaScript의 타임 스탬프가 일치하지 않습니까?
배경 정보 : 서버와 패킷을주고받는 웹 애플리케이션을 개발 중입니다. 들어오는 모든 패킷은 Date.now()에 의해 생성 된 타임 스탬프로 표시됩니다. 이러한 패킷 중에는 데이터가 있으며, 이는 챠트 차트에 인쇄됩니다. 그래서 나는 y 축의 값과 x 축의 타임 스탬프를 얻는다. 여태까지는 그런대로 잘됐다.
앱을 실행 시키면 이상한 행동이 나타납니다. -> 데이터 표를 과거의 데이터 포인트로 다시 그립니다. 내가 본 차트의 타임 스탬프를 확인하는 동안 내 차트는 모든 작업을 올바르게 수행하지만 타임 스탬프가 잘못되었습니다.
방법 나중에 내가 서로를 얻을 : 몇 분 동안이 실행
이var i = 0;
var ts = [Date.now()];
setInterval(function() {
ts.push(Date.now());
console.info("checking next timestamp ...");
if (ts[i] > ts[i+1]) {
console.error("old timestamp (" + ts[i] + ") is BIGGER than current timestamp (" + ts[i+1] + ")!");
}
i++;
}, 100);
나에게 하나의 오류를 인쇄 :
그래서 좀 더 많은 증거를 수집하기 위해, 약간의 테스트 스크립트를 작성 하나, 등등. 이 테스트를 위해 나는 많은 타임 스탬프를 확인하는 100ms의 시간 간격을 선택했다. 하지만 내 응용 프로그램은 아마도 5s의 업데이트 간격을 가지고 있으며 여전히 가끔이 오류가 발생합니다. 아니 자주이 100ms와 같은,하지만 이 :(것전에이 동작을 본 다른 사람이 내가 여기서 뭔가 잘못하고 있습니까 BTW
수 :? 내 응용 프로그램의 패킷은 하나 하나에 와서, 그래서이다 패킷의 순서가 뒤섞이는 것은 불가능합니다.
Chrome, Firefox 및 IE에서도이 문제를 재현 할 수 없습니다. – Cerbrus
@Cerbrus : Chrome을 사용하고 있으며 몇 분 후에이 오류가 발생합니다. 때로는 더 빨라지고, 때로는 더 오래 걸리는 경우가 있습니다 ... – Fidel90
점심 시간에 실행을 떠나겠습니다 – Cerbrus