성능 최적화


성능 최적화

불필요한 DOM 작업 방지

브라우저가 DOM 요소를 순회하는 데 비용이 많이 듭니다. DOM 트리 쿼리를 최적화하는 가장 간단한 솔루션은 DOM 트리를 여러 번 쿼리하지 않도록 요소가 여러 번 나타날 때 이를 변수에 저장하는 것입니다.

// Recommended
var myList = "";
var myListHTML = document.getElementById("myList").innerHTML;

for (var i = 0; i < 100; i++) {
  myList += "<span>" + i + "</span>";
}

myListHTML = myList;

// Not recommended
for (var i = 0; i < 100; i++) {
  document.getElementById("myList").innerHTML += "<span>" + i + "</span>";
}

캐시 ​​배열 길이

루프는 의심할 여지 없이 JavaScript 성능과 매우 관련이 있는 부분입니다. 배열의 길이를 저장하면 각 루프를 다시 계산하는 것을 효과적으로 방지할 수 있습니다.

참고: 최신 브라우저 엔진은 이 프로세스를 자동으로 최적화하지만 여전히 오래된 브라우저도 있다는 점을 잊지 마세요.

var arr = new Array(1000),
    len, i;
// Recommended - size is calculated only 1 time and then stored
for (i = 0, len = arr.length; i < len; i++) {

}

// Not recommended - size needs to be recalculated 1000 times
for (i = 0; i < arr.length; i++) {

}

타사 콘텐츠의 비동기 로드

YouTube 동영상이나 좋아요/트윗 버튼과 같은 타사 콘텐츠 삽입이 제대로 작동하는지 보장할 수 없는 경우 전체 페이지가 차단되지 않도록 이러한 코드를 비동기적으로 로드하는 것을 고려해야 합니다. 짐.

(function() {    var script,
        scripts = document.getElementsByTagName('script')[0];    function load(url) {
      script = document.createElement('script');
      script.async = true;
      script.src = url;
      scripts.parentNode.insertBefore(script, scripts);
    }

    load('//apis.google.com/js/plusone.js');
    load('//platform.twitter.com/widgets.js');
    load('//s.widgetsite.com/widget.js');

}());

jQuery를 사용하여 애니메이션을 구현하지 마세요.

1. SlideUp/Down() fadeIn/fadeOut() 및 기타 메서드를 사용하는 것이 금지됩니다.

2 animate() 메서드를 사용하지 마세요.