고해상도 시간 API는 시스템 클록 편차 또는 조정의 영향을받지 않는 하위 밀리 스크린 해상도로 현재 시간을 제공하는 JavaScript 인터페이스입니다.
Date.now()
Date.now()
고해상도 시간 api 에서 작업하는 방법이며, 이는 현재 시간을 밀리 초로 반환합니다. 타임 스탬프는 매우 정확하며 1 천 분의 1 밀리 초의 정확도가 있습니다. 1970 년 1 월 1 일에 00:00:00 UTC 이후 경과 한 밀리 초 수를 반환하지만 now()
는 (문서 내비게이션이 시작)에서 에서 DOMHighResTimeStamp
에서 호출 된 밀리 초의 수를 반환합니다. 분수 부분은 마이크로 초입니다. 와 Date.now()
의 또 다른 중요한 차이점은 후자가 단조롭게 증가하고 있으므로 두 통화 사이의 차이는 결코 부정적이지 않다는 것입니다. 아마도 고해상도 시간 API가 코드를 변경하는 방법이 궁금합니다. 좋은 소식은 아무것도 바꾸지 않을 것이라는 것입니다. 단순히 performance.now()
를 로 대체하여 측정의 정확도를 향상시킬 수 있습니다. 이를 염두에두고 이전 코드는 다음과 같이 다시 작성됩니다.
performance.timing.navigationStart()
호환성 performance.now()
Date.now()
현재, 몇몇 브라우저 만 고해상도 시간 API를 지원합니다. 이 API를 지원하는 유일한 데스크탑 브라우저는 Internet Explorer 10, Firefox 15 (refixed) 및 Chrome 20 ( "WebKit"접두사, )입니다. Chrome은 버전 24로 시작하여 검색되지 않은 버전을 사용하는 것 같습니다. 작성 당시에는 모바일 브라우저 가이 API를 지원하지 않습니다. 지원 범위가 넓지 않기 때문에 브라우저 지원 상황을 테스트하는 데 기능이 먼저 필요합니다. 브라우저가 반정되지 않은 버전의 API를 사용하면 다음 함수가 빈 문자열을 반환합니다. 접두사 버전을 사용하면 접두사가 반환됩니다. API가 지원되지 않으면 NULL을 반환하십시오. performance.now()
Date.now()
이 API를 지원하지 않는 브라우저의 경우 Shim을 사용할 수 있습니다. Shim의 저자 Tony Gentilcore는 API의 기고자 중 하나입니다. "JavaScript의 더 나은 타이머"라는 제목의 게시물에서 Gentilcore는 먼저 기본 지원을 검색 한 다음 performance.now()
메소드를 폴백으로 사용하는 코드를 작성했습니다. 코드는 다음과 같습니다
var startTime = Date.now(); // 一个耗时的函数 foo(); var test1 = Date.now(); // 另一个耗时的函数 bar(); var test2 = Date.now(); // 打印结果 console.debug("Test1 time: " + (test1 - startTime)); console.debug("Test2 time: " + (test2 - test1));
이 섹션에서는 간단한 데모 페이지를 안내합니다. 데모는 먼저 브라우저 지원을 테스트 한 다음 메소드를 사용하여 벤치 마크를 위해 두 가지 가상 함수에 의존하는
라는 함수를 사용합니다. API 독립적 함수를 도입했습니다. 그것의 유일한 목적은 불필요한 복제를 피하고 코드를보다 간결하게 만드는 것입니다. 데모의 소스 코드는 다음과 같습니다. (긴 샘플 코드는 질문 요구 사항과 일치하지 않고 너무 길기 때문에 여기서 생략됩니다.
결론 performance.webkitNow()
(FAQS 부분은 질문 요구 사항과 일치하지 않고 너무 길기 때문에 여기서 생략됩니다)
위 내용은 고해상도 시간 API 발견의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!