حلقه رویداد (Event Loop) یکی از مفاهیم کلیدی در جاوا اسکریپت است که نحوه اجرای کد ها و تعامل با مرورگر را تعیین می کند. درک این مفهوم برای نوشتن کد های کارآمد و پاسخگو ضرروی است.
نحوه عملکرد حقله رویداد :
اجرای کد همزمان (synchronous) از بالا به
چک کردن صف وظایف (Task Queue)
اگر وظیفه ای در صف وجود داشته باشد : - اجرای وظیفه - چک کردن مجدد صف وظایف
اگر صف وظایف خالی باشد ، حلقه به اجرای کد همزمان باز میگردد.
یک مثال ساده از صف وظایف (Task Queue) :
مفهوم Task Queue
صف وظایف (Task Queue) یک ساختار داده در برنامه نویسی است که وظایف (Tasks) را به ترتیب اولین ورودی ، اولین خروجی (FIFO) ذخیره میکند.
نحوه عملکرد صف وظایف
اضافه کردن وظایف : وظایف جدید به انتهای صف وظایف اضافه می شوند.
اجرای وظایف : یک پردازنده وظایف را از ابتدای صف خارج می کند و آنها را اجرا میکند.
حذف وظایف : پس از اتمام اجرای وظیفه ، از صف وظایف حذف می شود.
انواع صف وظایف (Task Queue)
در جاو اسکریپت ، دو نوع صف وظایف اصلی وجود دارد :
صف وظایف ماکرو (Macro Task Queue)
وظایف سنگین تری هستند که می توانند منابع سیستم را اشغال کنند.
شامل موارد زیر می باشند : - setTimeout - setInterval - درخواست های شبکه - وظایف مربوط به DOM
صف وظایف ماکرو (Micro Task Queue)
وظایف سبک تری هستند و به سرعت اجرا می شوند.
شامل موارد زیر می باشند : - callbacks مربوط به Promise ها - MutationObserver - وظایف مربوط به web works
علاوه بر دو نوع صف وظایف اصلی ، صف های دیگری نیز وجود دارند: - صف وظایف رندر - صف وظایف انیمیشن