Zero Delays and Event loop

پرسیده شده
فعالیت 1188 روز پیش
دیده شده 590 بار
2

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

 

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

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

فایل پیوست

Erfan Soori
Erfan Soori

1 بهمن 99

2
حذف شده

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

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

 

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

 

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

فایل پیوست

مهرداد دادخواه

توسط

مهرداد دادخواه

4 بهمن 99

حذف شده
ممنون از پاسخ شما اینطور موارد رو از کجا میشه مطالعه کرد؟ چطور میتونم شناختمو از نحوه کار موتور جی اس، استک، ایونت لوپ و... گسترش بدم؟
Erfan Soori

4 بهمن 99

حذف شده
تسلط کامل روی موتور جاواسکریپت نیاز به مطالعه و تمرین زیاد داره ۲ منبع در این مورد میشناسم که میتونه بهتون کمک کنه اولین منبع داکیومنت های اکما اسکریپت هست. یعنی همان قوانینی که بر پایه آن ها جاوا اسکریپت توسعه پیدا میکنه. داکیومنت هر نسخه از اکما اسکریپت در وب موجوده و میتونید مطالعه کنید دومین منبع کتاب زیر هست: https://github.com/getify/You-Dont-Know-JS مطالعه داکیومنت های اکمااسکریپت صبر و حوصله بیش‌تری میطلبه ولی کتاب زیر کمی کاربردی تر صحبت کرده هرچند عمق مطالب هر کدام متفاوته