💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Erfan Soori
Zero Delays and Event loop
حسین دادخواه حل شده توسط حسین دادخواه

باسلام و خسته نباشید
در جایی که صحبت از تاخیر ۰ شد من مطلب لینک زیر رو خوندم و به همه پیشنهاد میکنم مطالعه کنن:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop#adding_messages

 

سوال من اینه: 
۱. آیا با توجه به مطالب گفته شده میشه نتیجه گرفت که جاوااسکریپت اول همه کد‌های صفحه ما(هرچقدر هم که طولای باشه و اجرائش طول بکشه) رو اجرا میکنه و بعد میره سراغ اجرای setTimeout‌های تاخیر ۰؟

۲. آیا موتور جاوااسکریپت کل کدهای مارو همون ابتدای لود صفحه بعنوان یک Message  واحد میذاره توی Event Loop و پس از اینکه کل کد ما تا انتها اجراء شد میره سراغ Message‌های مربوط به setTimeout ؟
 

سلام دوست عزیز

بابت دقتی که دارید بهتون تبریک میگم

 

۱- بله درسته نه تنها تاخیر صفر بلکه تمامی کدهایی که کار scheduling را انجام میدن مثل setInterval - البته در مورد در جلسات آتی بهتر و کامل‌تر توضیح داده شده است.

 

۲- خیر اینطور نیست همانطور که در اسلایدها به نمایش گذاشته شده است هر خط از کد به عنوان یک message در استک قرار میگیره و وقتی اجرا میشه میره سراغ کد بعدی. موضوع اینجاست که نحوه مدیریت و اجرای کدهای اصلی و کدهای مرتبط با BOM به ویژه موارد مرتبط با scheduling متفاوت هست’’

بهترین پاسخ
حسین دادخواه ۰۴ بهمن ۱۳۹۹، ۲۰:۰۰