وقتی بلاک کردن ترد اصلی جاوااسکریپت نه‌تنها اشتباه نیست، بلکه هوشمندانه‌ست!

وقتی بلاک کردن ترد اصلی جاوااسکریپت نه‌تنها اشتباه نیست، بلکه هوشمندانه‌ست!

همیشه به ما گفته‌اند که بلاک کردن «ترد اصلی» (Main Thread) مرورگر در جاوااسکریپت یک تابوی بزرگ است و باید به هر قیمتی از آن اجتناب کرد. اما آیا این قانون همیشه درست است؟ ویکتور آیومپو، توسعه‌دهنده‌ای که روی یک افزونه اسکرین‌شات کار می‌کرد، با یک سناریوی خاص روبه‌رو شد که در آن مجبور شد این قانون طلایی را زیر پا بگذارد و عمداً ترد اصلی را بلاک کند. نکته جالب این‌جاست که او می‌گوید این تصمیم نه‌تنها اشتباه نبود، بلکه دقیقاً همان کاری بود که باید انجام می‌شد!

به گفته آیومپو، در موارد خاصی مثل گرفتن اسکرین‌شات از صفحه‌ای که محتوای سنگین و همگام (Synchronous) دارد، رها کردن ترد اصلی می‌تواند منجر به ناهماهنگی و خطاهای بصری شود. او توضیح می‌دهد که در این سناریو، بلاک کردن موقت ترد اصلی برای اطمینان از ثبت کامل و دقیق تصویر، یک معامله هوشمندانه است؛ چراکه کاربر در آن لحظه انتظار تعامل ندارد و فقط می‌خواهد نتیجه نهایی را ببیند. این نمونه نشان می‌دهد که در دنیای واقعی توسعه وب، گاهی باید قوانین را بر اساس بافت پروژه تفسیر کرد، نه اینکه کورکورانه از آن‌ها پیروی کنیم.

از دید تحلیل تخصصی، این رویکرد را می‌توان به مدیریت ریسک در بازار رمزارز تشبیه کرد: همان‌طور که یک نهنگ هوشمند در شرایط نوسانی شدید (ولاتیلیتی بالا) ممکن است به‌طور موقت معاملاتش را متوقف کند تا ضرر نکند، یک توسعه‌دهنده حرفه‌ای هم باید بداند چه زمانی برای حفظ کیفیت و یکپارچگی، اجازه بلاک شدن ترد اصلی را بدهد. این خبر نشان می‌دهد که به‌زودی شاهد ابزارهای جدیدی خواهیم بود که از این الگو برای بهینه‌سازی عملکرد افزونه‌های مرورگر استفاده می‌کنند و این می‌تواند یک روند صعودی (Bullish) در کارایی ابزارهای تحت وب ایجاد کند. اما هشدار مهم این است که این استثنا نباید به یک عادت تبدیل شود؛ در غیر این صورت، با افت شدید تجربه کاربری و خروج کاربران، روند نزولی (Bearish) را در مقیاس پروژه تجربه خواهید کرد.

منبع: SmashingMagazine (مشاهده متن اصلی)