업데이트 : Chrome 58 이상에서는 기본적으로 이러한 디버그 메시지와 기타 디버그 메시지를 숨겼습니다. 이를 표시하려면 '정보'옆의 화살표를 클릭하고 '자세한 내용'을 선택하십시오.
Chrome 57은 기본적으로 '숨기기 위반'을 설정했습니다. 필터를 다시 켜려면 필터를 활성화하고 '위반 사항 숨기기'상자를 선택 취소해야합니다.
갑자기 다른 사람이 프로젝트에 참여했을 때 나타납니다.
Chrome 56으로 업데이트했을 가능성이 큽니다.이 경고는 훌륭한 새 기능입니다. 필자가 필사적으로 평가판을 표시하지 않을 경우에만 끄십시오. 근본적인 문제는 다른 브라우저에 있지만 브라우저는 문제가 있다고 알려주지 않습니다. Chromium 티켓이 여기 있지만 실제로 흥미로운 토론은 없습니다.
이 메시지는 실제로 큰 문제를 일으키지 않기 때문에 오류 대신 경고입니다. 프레임이 떨어지거나 덜 부드러운 느낌을 줄 수 있습니다.
그러나 응용 프로그램의 품질을 향상시키기 위해 조사하고 수정해야합니다. 이를 수행하는 방법은 메시지가 나타나는 환경에주의를 기울이고 문제가 발생한 위치를 좁히기 위해 성능 테스트를 수행하는 것입니다. 성능 테스트를 시작하는 가장 간단한 방법은 다음과 같은 코드를 삽입하는 것입니다.
function someMethodIThinkMightBeSlow() {
const startTime = performance.now();
// Do the normal stuff for this function
const duration = performance.now() - startTime;
console.log(`someMethodIThinkMightBeSlow took ${duration}ms`);
}
좀 더 고급 얻고 싶은 경우에, 당신은 또한 사용할 수있는 크롬의 프로파일 러를 , 또는 같은 벤치 마크 라이브러리를 사용하게 이 일을 .
시간이 오래 걸리는 코드를 찾은 경우 (50ms는 Chrome의 임계 값임) 몇 가지 옵션이 있습니다.
- 불필요 할 수있는 작업의 일부 / 모두 잘라 내기
- 동일한 작업을 더 빠르게 수행하는 방법 파악
- 코드를 여러 개의 비동기 단계로 나눕니다.
(1)과 (2)는 어렵거나 불가능할 수 있지만 때로는 정말 쉬우 며 첫 번째 시도 여야합니다. 필요한 경우 항상 할 수 있어야합니다 (3). 이를 위해 다음과 같은 것을 사용합니다.
setTimeout(functionToRunVerySoonButNotNow);
또는
// This one is not available natively in IE, but there are polyfills available.
Promise.resolve().then(functionToRunVerySoonButNotNow);
JavaScript의 비동기 특성에 대한 자세한 내용은 여기를 참조하십시오 .