Pengoptimuman prestasi


Pengoptimuman Prestasi

Elakkan operasi DOM yang tidak perlu

Memang mahal untuk penyemak imbas melintasi elemen DOM. Penyelesaian paling mudah untuk mengoptimumkan pertanyaan pepohon DOM ialah menyimpannya dalam pembolehubah apabila elemen muncul beberapa kali untuk mengelakkan pertanyaan pepohon DOM beberapa kali.

// 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>";
}

Panjang tatasusunan cache

Gelung sudah pasti merupakan bahagian yang sangat relevan dalam prestasi JavaScript. Dengan menyimpan panjang tatasusunan, anda boleh mengelak daripada mengira semula setiap gelung dengan berkesan.

Nota: Walaupun enjin penyemak imbas moden akan mengoptimumkan proses ini secara automatik, jangan lupa bahawa masih terdapat penyemak imbas yang lebih lama.

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++) {

}

Pemuatan tak segerak bagi kandungan pihak ketiga

Apabila anda tidak dapat menjamin bahawa membenamkan kandungan pihak ketiga seperti video Youtube atau butang suka/tweet akan berfungsi dengan betul, anda perlu mempertimbangkan untuk memuatkan kod ini secara tidak segerak untuk mengelak daripada menyekat keseluruhan halaman memuatkan.

(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');

}());

Elakkan menggunakan jQuery untuk melaksanakan animasi

1. Dilarang menggunakan slideUp/Down() fadeIn/fadeOut() dan kaedah lain

2