TGViewer
کدهالیک | codehalic کدهالیک | codehalic @codehalics · 4.15K subscribers
Post #1034 1.02K
خیلی وقتا برای هماهنگ کردن تب‌های مرورگر (مثلا وقتی کاربر تو یه تب لاگ‌اوت میکنه یا سبد خریدش رو آپدیت میکنه) میایم سراغ هک localStorage. یعنی یه دیتا مینویسیم و فورا پاک میکنیم تا ایونت storage صدا زده بشه. این روش پر از دردسره، کدهای اضافه زیادی می‌طلبه و کلا از پایه برای این کار ساخته نشده.

راه‌حل نیتیو و اصولی چیه؟ استفاده از BroadcastChannel این API دقیقا برای ارتباط مستقیم بین تب‌ها ساخته شده. نه نیازی به JSON.stringify داره، نه لازم هست ایونت‌های اضافه رو فیلتر کنید و دیتای ساختاریافته رو خیلی راحت منتقل میکنه. فقط یه کانال با اسم مشخص باز میکنید و پیامتون رو می‌فرستید:

توی تب فرستنده:
const channel = new BroadcastChannel('app-sync');
channel.postMessage({ type: 'LOGOUT' });


توی تب‌های گیرنده:
const channel = new BroadcastChannel('app-sync');
channel.onmessage = (event) => {
console.log(event.data); // { type: 'LOGOUT' }
};


به همین راحتی و تمیزی! فقط یادتون باشه وقتی کارتون تموم شد channel.close() رو صدا بزنید تا ریسورس‌ها آزاد بشن.

@codehalics | کدهالیک
  • ❤ 8
  • 🔥 2
More from @codehalics
  1. Oct 3, 2026امروز سرور کدهالیک یه مدت از دسترس خارج شد. بعد از پیگیری معلوم شد هیت‌سینک سرور مشکل داشت…
  2. Oct 3, 2026کارآموز .net اگر به دنیای نرم‌افزار علاقه دارید و برای یادگیری و حل مسئله کنجکاو و پرتلاش…
  3. Oct 3, 2026یه اصطلاح باحالی توش استفاده کرد بود به اسم«اقتصاد دمبلی» (Barbell Economy) مفهوم اقتصاد د…
  4. Oct 3, 2026تو این مقاله‌ای که خوندم نویسنده میگه هنوز برای ساختن یه کسب‌وکار از صفر تو عصر هوش مصنوعی…
  5. Oct 3, 2026دقیقاً مشابه این اتفاق چند سال پیش برای Faker.js افتاد؛ نگهدارنده اصلی پروژه بعد از مدت‌ها…
  6. Oct 3, 2026خبر فوری برای دنیای .NET؛ Polly هم پولی شد! این ابزار هم رفت سراغ مدل تجاری و بخشی از استف…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →