JavaScript
Element Resize 시 window resize 이벤트 발생 속도
요술공주밍키
2022. 10. 31. 09:54
회사 업무를 진행하다가 Element를 리사이징 했을 때 window resize 이벤트가 비정상적인 속도로 실행되어
Canvas의 annotation이 오류를 일으키는 것을 확인하였다.
최초 canvas annotation 부분의 코드를 수정하려고 했는데 해당 부분에는 문제가 없는 것 같아
리사이징 이벤트 자체를 수정하기로 하였다.
브라우저를 리사이징 할 때는 이상이 없지만 Element를 리사이징 했을 때 오류가 발생하는 경우
window resize 이벤트를 약간 수정할 필요가 있다.
// 기존 코드
$(window).resize(function() {
initializePerfectScroll();
if(false == checkCanvasImageLoaded()) {
return;
}
selectThumbnail(currentSelectedId);
})
기존 코드는 코드 자체의 문제는 없지만 Element 리사이징 시 비정상적인 속도로 실행되기 때문에 timeout을 설정하였다.
// 수정 코드
function winResize() {
initializePerfectScroll();
if(false == checkCanvasImageLoaded()) {
return;
}
selectThumbnail(currentSelectedId);
}
let timeSet;
window.onresize = function() {
clearTimeout(timeSet);
timeSet = setTimeout(winResize, 50);
}
해당 코드로 수정하니 Canvas의 렌더링이 훨씬 매끄러워진 것을 확인하였다.