یوسف غیبی
یوسف غیبی
خواندن ۲ دقیقه·۱۰ ماه پیش

مفهوم کلی event loop در جاوا اسکریپت


حلقه رویداد (Event Loop) یکی از مفاهیم کلیدی در جاوا اسکریپت است که نحوه اجرای کد ها و تعامل با مرورگر را تعیین می کند. درک این مفهوم برای نوشتن کد های کارآمد و پاسخگو ضرروی است.

نحوه عملکرد حقله رویداد :

  • اجرای کد همزمان (synchronous) از بالا به
  • چک کردن صف وظایف (Task Queue)
  • اگر وظیفه ای در صف وجود داشته باشد :
    - اجرای وظیفه
    - چک کردن مجدد صف وظایف
  • اگر صف وظایف خالی باشد ، حلقه به اجرای کد همزمان باز میگردد.

    یک مثال ساده از صف وظایف (Task Queue) :

مفهوم Task Queue

صف وظایف (Task Queue) یک ساختار داده در برنامه نویسی است که وظایف (Tasks) را به ترتیب اولین ورودی ، اولین خروجی (FIFO) ذخیره میکند.

نحوه عملکرد صف وظایف

  1. اضافه کردن وظایف : وظایف جدید به انتهای صف وظایف اضافه می شوند.
  2. اجرای وظایف : یک پردازنده وظایف را از ابتدای صف خارج می کند و آنها را اجرا میکند.
  3. حذف وظایف : پس از اتمام اجرای وظیفه ، از صف وظایف حذف می شود.

انواع صف وظایف (Task Queue)

در جاو اسکریپت ، دو نوع صف وظایف اصلی وجود دارد :

صف وظایف ماکرو (Macro Task Queue)

  1. وظایف سنگین تری هستند که می توانند منابع سیستم را اشغال کنند.
  2. شامل موارد زیر می باشند :
    - setTimeout
    - setInterval
    - درخواست های شبکه
    - وظایف مربوط به DOM

صف وظایف ماکرو (Micro Task Queue)

  1. وظایف سبک تری هستند و به سرعت اجرا می شوند.
  2. شامل موارد زیر می باشند :
    - callbacks مربوط به Promise ها
    - MutationObserver
    - وظایف مربوط به web works

علاوه بر دو نوع صف وظایف اصلی ، صف های دیگری نیز وجود دارند:
- صف وظایف رندر
- صف وظایف انیمیشن

ترتیب اجرای کد در این صف ها

- وظایف میکرو
- وظایف رندر
- وظایف ماکرو
- وظایف انیمیشن


جاوا اسکریپتevent loop
برنامه نویس فرانت اند
شاید از این پست‌ها خوشتان بیاید