کارایی در جاوا اسکریپت

از ویکی کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مثال‌های جاوا اسکریپت
مرجع جاوا اسکریپت

چگونه سرعت اجرای کد اسکریپت خود را افزایش دهید؟ [۱]

کاهش فعالیت در حلقه ها

حلقه‌ها اغلب در برنامه‌نویسی استفاده می‌شوند.

هر تکه کد در حلقه، که شامل حلقه for نیز می‌شود در هر بار پیمایش حلقه نیز اجرا می‌شود.

تکه کدها یا مقداردهی‌هایی که می‌توانند در خارج از حلقه قرار بگیرند، می‌توانند سرعت اجرای حلقه را بیشتر کنند.

روش نادرست:

var i;
for (i = 0; i < arr.length; i++) {

روش صحیح تر:

1 var i;
2 var l = arr.length;
3 for (i = 0; i < l; i++) {

در روش نادرست، دسترسی به ویژگی length یک آرایه در هر بار پیمایش حلقه صورت می‌گیرد.

در روش صحیح تر، ویژگی length بیرون حلقه قرار می‌گیرد و اجرای حلقه را سریعتر می‌کند.

کاهش دسترسی از طریق DOM

دسترسی به عناصر HTML به وسیلهٔ HTML DOM در مقایسه با سایر تکه کدها بسیار آهسته‌تر است.

اگر شما می‌خواهید که به یک عنصر DOM چندین بار دسترسی داشته باشید، یک بار به آن دسترسی پیدا کنید و از آن به عنوان متغیر محلی استفاده کنید:

مثال

1 var obj;
2 obj = document.getElementById("demo");
3 obj.innerHTML = "Hello";

تعداد استفاده از Dom را کاهش دهید

تعداد استفاده از عناصر به وسیلهٔ HTML DOM را کم نگه دارید.

این امر همیشه موجب بهبود بارگذاری صفحه و افزایش سرعت رندر صفحه (نمایش صفحه) به خصوص در دستگاه‌های کوچک می‌شود.

در هر دفعه جستجو به وسیلهٔ DOM ، (همانند متد getElementByTagName) موجب اجرای یک DOM کوچک‌تر می‌شود.

جلوگیری از استفاده غیرضروری متغیرها

اگر برنامه ای برای ذخیره مقادیر ندارید، متغیرهای جدید را تعریف نکنید.

بیشتر موارد شما می‌توانید کدی همانند کد زیر را:

1 var fullName = firstName + " " + lastName;
2 document.getElementById("demo").innerHTML = fullName;

با این کد جابه‌جا کنید:

1 document.getElementById("demo").innerHTML = firstName + " " + lastName

تأخیر در بارگذاری جاوا اسکریپت

قرار دادن اسکریپتهایتان در پایین صفحه به مرورگر اجازه می‌دهد که ابتدا صفحه را بارگذاری کند.

زمانی که یک اسکریپت در حال دانلود است، مرورگر سایر دانلودها را آغاز نخواهد کرد. به علاوه تمامی عملیات‌های تبدیل یا parsing و عملیات‌های رندر کردن نیز ممکن است block شوند.

طبق قانون HTTP مرورگر نباید بیشتر از دو کامپوننت را به صورت موازی یا parallel دانلود کند.

یک روش برای حل این مشکل، استفاده از دستور defer="true" در تگ script است.

ویژگی deffer مشخص می‌کند که اسکریپت می‌بایست بعد از بارگذاری کامل صفحه اجرا شود، اما این ویژگی تنها در اسکریپت‌های خارجی یا external کار می‌کند.

در صورت امکان، شما می‌توانید اسکریپت خود را به وسیلهٔ کد بعد از اینکه بارگذاری صفحه انجام شد، به صفحه اضافه کنید:

1 <script>
2 window.onload = function() {
3   var element = document.createElement("script");
4   element.src = "myScript.js";
5   document.body.appendChild(element);
6 };
7 </script>

از استفادهٔ کلمهٔ کلیدی with بپرهیزید

از استفاده از کلمه کلیدی with بپرهیزید. این استفاده اثر منفی بر روی سرعت دارد. همچنین موجب بهم ریختن ناحیه کد یا Scopeها در جاوا اسکریپت می‌شود.

استفاده از کلمه کلیدی with در حالت سخت گیرانه یا Strict mode مجاز نیست.

منابع آموزشی