قابلیت Multi Threading در JavaScript
گاهی در وب اپلیکشن ها نیاز هست تا داده های زیاد و حجیمی از سمت سرور دریافت شود و پردازشی بر روی این داده ها صورت بگیرد. از آنجایی که این پردازش مدت زمان زیادی طول می کشد تا پایان بگیرد، صفحه قفل می شود و یا به اصطلاح هنگ می کند. علت این امر آن است که برنامه توسط یک Thread در حال اجرا می باشد و وقتی که این Thread در حال پردازش داده ها ست، نمی تواند به کلیک ها و سایر تعاملات کاربر پاسخ دهد و به همین خاطر صفحه قفل می کند.
در این سناریو و بسیاری از سناریو های دیگر نیاز هست تا پردازش های سنگین و یا موازی در صفحه مان داشته باشیم و برای حل مشکلی که در فوق مطرح شد باید از Multi Threading استفاده کنیم.
در استاندارد HTML5، قابلیت Web Worker معرفی شد که به مرورگر ها اجازه میداد اپلیکشن ها را به صورت Multi Thread اجرا کنند. در واقع هر Worker معادل با یک Thread می باشد.
* در مورد Web Worker در مستندات MDN:
http://blog.teamtreehouse.com/using-web-workers-to-speed-up-your-javascript-applications
* کتابخانه ای که کار با Web Worker ها را به شدت ساده تر و خوانا تر می کند:
https://github.com/calvinmetcalf/catiline
مطلبی دیگر از این انتشارات
ارتباط بین React JS و Flux JS
مطلبی دیگر از این انتشارات
پیش پردازندههای CSS
مطلبی دیگر از این انتشارات
قهرمانی به نام Nodejs (قسمت 3)