چگونه سرعت كد جاوااسكريپت بالاتر رود.
حلقه ها اغلب در برنامه نويسي استفاده ميشوند .هر دستور درحلقه ازجمله دستورfor در هربار تكرار اجرا ميشوند.
دستوراتيكه ميتوانند خارج ازحلقه قرارگيرند، باعث ميشوند كه حلقه سريعتر انجام شود.
مثال ـ استفاده بد
for (let i = 0; i < arr.length; i++) {
مثال ـ كدبهتر
let l = arr.length; for (let i = 0; i < l; i++) {
در مثال استفاده بد هرباركه حلقه تكرار ميگردد،به ويژگيlength يك آرايه دسترسي انجام ميشود. اما در كد بهتر دسترسي به ويژگيlength يك بار انجام ميشود وحلقه هم داراي همان نتايج قبلي است.
سرعت دسترسي دستورات جاوااسكريپت بعناصرHTML صفحه در مقايسه با دستورات ديگرخيلي كند است .
اگر ميخواهيد بارها بعنصري ازHTML دسترسي داشته باشيد، بهتراست با يك بار دسترسي آنرا دريك
متغير محلي ذخيره ودفعات ديگر را از متغير استفاده نمائيد.
مثال ـ دسترسي به عنصرHTML با جاوااسكريپت .
const obj = document.getElementById("demo"); obj.innerHTML = "Hello";
سعي كنيد تعداد عنصرHTML DOM ، را كم تر كنيد .اين كار براي بهبود بارگذاري. موثر بوده مخصوصا براي نمايش در دستگاهاي كوچكتر.
در هر تلاشي براي جستجو درDOM مثل(getElementByTagName) با اندازه كمتر آن موثرتر ميباشد.
اگر قصد ذخيره كردن مقادير را نداريد، متغير هاي جديد ايجاد نكنيد.
مثال ـ بعنوان نمونه بجاي كد اول ميتوانيد كد دوم راجايگزين كنيد.
let fullName = firstName + " " + lastName; document.getElementById("demo").innerHTML = fullName;
document.getElementById("demo").innerHTML = firstName + " " + lastName;
اسكريپت هاي برنامه تان را در پائين بدن صفحه قراردهيد .بااين كار صفحه اول بارگذاري شده وسپس اسكريپت ها.
هنگاميكه اسكريپتي دانلود ميشود، مرورگر هيچ دانلود ديگري را شروع نميكند .علاوه براين تمام فعاليت هاي تجزيه ورندر ممكن است مسدود شود.
درمشحصاتHTTP تعريف شده كه مرورگر ها نبايد بيش از دومولفه را به صورت موازي دانلودكنند .
ويژگي جانبيdefer با تنظيمdefer="true" براي اسكريپت وجود دارد ومشخص ميكند كه بايد پس از تجزيه صفحه اجرا شود، اما فقط براي اسكريپت هاي خارجي كارميكند.
در صورت امكان ، پس ازبارگذاري صفحه، ميتوانيد اسكريپت خودرا باكد به صفجه اضافه كنيد.
مثال ـ اضافه كردن اسكريپت
<script> window.onload = function() { const element = document.createElement("script"); element.src = "myScript.js"; document.body.appendChild(element); }; </script >
از استفاده كي وردwith اجتناب كنيد .آن تاثير منفي در سرعت ميگذارد .همچنين دامنه جاوااسكريپت را بهم ميريزد.
استفاده ازكي وردwith در حالت سختگرانه جاواسكريپت مجاز نيست .