تا حالا شده یک فیچر بزنید که کل دیتاش لود شده، ولی تا کاربر یک چیزی سرچ میکنه یا فیلتر رو تغییر میده، صفحه برای چند ثانیه Freeze میشه؟ Spinnerها قفل میکنند، Inputها لگ میزنند و کلاً Application حس سنگینی میده.
برای حل این چالش، سراغ یک تغییر معماری جالب توی فرانتاند رفتم تا پردازشهای سنگین محاسباتی را کاملاً بفرستم توی Background. اینطوری Main Thread کاملا آزاد موند تا بدون حتی یک فریم افت کیفیت، به کارش ادامه بده و UI مثل روز اول روان شد.
توی این مقاله جدیدی که نوشتم، سیر تا پیاز این سناریو، دلیل این که چرا Debouncing کافی نیست و چالشهای این ساختار را کاملاً باز کردم. یک دمو واقعی هم براش ساختم که میتوانید تفاوت پرفورمنس را با چشم ببینید. پیشنهاد میکنم این مقاله را بخوانید:
Demo: https://webworker-vs-main-thread.netlify.app/
Github: https://github.com/MiladSadeghi/webworker-vs-main-thread
https://www.linkedin.com/pulse/main-thread-vs-web-workers-milad-sadeghi-hqbie/
@DevTwitter | <Milad Sadeghi/>
Post #12444
6.73K

- ❤ 29
- 👍 9
- 🍌 8