JavaScript ประสิทธิภาพ
- หน้าก่อน ข้อผิดพลาด JS
- หน้าต่อไป คำถอน JS
แนวทางเพื่อเร่งระบบ JavaScript ของคุณ
ลดกิจกรรมในวงลูป
วงลูปเป็นสิ่งที่ใช้บ่อยในการเขียนโปรแกรม
ในทุกครั้งที่วงลูปเร่งเร็วขึ้น คำสั่งในวงลูป รวมถึง for
จะถูกปฎิบัติ
คำสั่งหรือการกำหนดค่าที่สามารถถือว่าจะถูกจัดเก็บนอกวงลูปจะทำให้วงลูปร่งเร็วขึ้น
รหัสที่รุนแรง:
var i; for (i = 0; i < arr.length; i++) {
รหัสที่ดีขึ้น:
var i; var l = arr.length; for (i = 0; i < l; i++) {
รหัสที่รุนแรงจะเข้าถึงองค์ประกอบของแอร์เรย์ในวงลูปทุกครั้ง length
attribute.
รหัสที่ดีจะเข้าถึงองค์ประกอบนอกวงลูป length
ทางที่ทำให้วงลูปเร่งเร็วขึ้น
ลดการเข้าถึง DOM
การเข้าถึง DOM ใน JavaScript จะช้ากว่า JavaScript อื่นๆ
หากคุณคาดหวังจะเข้าถึงองค์ประกอบ DOM หลายครั้ง ลองเข้าถึงเพียงครั้งเดียวและใช้เป็นตัวแปรท้องที่:
ตัวอย่าง
var obj; obj = document.getElementById("demo"); obj.innerHTML = "Hello";
ลดขนาด DOM
กรุณาให้ความสนใจในการรักษาจำนวนอิเลเมนต์ที่น้อยใน HTML DOM
การกระทำนี้จะเพิ่มการโหลดหน้าเว็บและเร่งการแสดงผล (การแสดงหน้าเว็บ) โดยเฉพาะในอุปกรณ์ที่เล็ก
ในทุกครั้งที่คุณพยายามค้นหา DOM (เช่น getElementsByTagName
จะได้ประโยชน์จาก DOM ที่เล็กกว่า
หลีกเลี่ยงตัวแปรที่ไม่จำเป็น
กรุณาไม่ทำให้มีตัวแปรใหม่ที่คุณไม่คาดหวังจะเก็บค่า
ทั่วไปแล้วคุณสามารถแทนที่โค้ดนี้:
var fullName = firstName + " " + lastName; document.getElementById("demo").innerHTML = fullName;
ใช้โค้ดนี้:
document.getElementById("demo").innerHTML = firstName + " " + lastName
ละเมิดการโหลด JavaScript
กรุณาจัดเก็บสคริปต์ที่ด้านล่างของหน้าเว็บ เพื่อให้เบราเซอร์ลงหน้าเว็บเป็นที่แรก
ขณะที่สคริปต์กำลังดาวน์โหลด บราวเซอร์จะไม่เริ่มดาวน์โหลดอะไรอื่น นอกจากนี้ การแก้ไขและการวาดทั้งหมดอาจถูกขัดขวาง
มาตราฐาน HTTP กำหนดว่าเครื่องนี้ไม่ควรดาวน์โหลดมากกว่าสองประเภทประกอบ
หนึ่งในทางที่สามารถทำได้คือใช้คุณสมบัติ defer ในแท็ก script defer="true"
คุณสมบัติ defer กำหนดว่าสคริปต์ควรที่จะปฏิบัติตัวหลังจากการแก้ไขหน้าเสร็จ แต่มันมีผลบวกเฉพาะสคริปต์ภายนอกเท่านั้น
หากท่านสามารถทำได้ ท่านสามารถเพิ่มสคริปต์ลงบนหน้าหลังจากการโหลดหน้าเสร็จด้วยรหัสโดยตรง:
ตัวอย่าง
<script> window.onload = downScripts; function downScripts() { var element = document.createElement("script"); element.src = "myScript.js"; document.body.appendChild(element); } </script>
หลีกเลี่ยงการใช้ with
โปรดหลีกเลี่ยงการใช้ with
คำสั่งที่มีความเร็วต่ำและสร้างความสับสนใน JavaScript สเคลตร
ในโหมด strictไม่อนุญาต คำสั่ง with
- หน้าก่อน ข้อผิดพลาด JS
- หน้าต่อไป คำถอน JS