رندر کامنتهای تودرتو با تگ جدید marker در HTML
خلاصهٔ کاملتر
دیو روپرت تو این پست سراغ یه قابلیت آزمایشی Chromium به اسم Declarative Partial Updates رفته. این قابلیت یه المنت جدید به اسم
<main id="main">
<?marker name="post-abc123" ?>
</main>
<template for="post-abc123">
<div class="post">
<div>First post</div>
</div>
</template>فرقش با اینه که هر marker فقط یه بار مصرف میشه. اگه بخوای چند تا آیتم پشت هم بیاد، باید ته هر آیتم دوباره یه marker با همون اسم بذاری. نویسنده میگه هر جا محتوای مهم باید اول بیاد و بقیه (مثل پاسخها، نظرات محصول یا کامنتهای یه pull request بزرگ) هر وقت رسید مهم نیست، این الگو به درد میخوره. مثال اصلیش هم یه ترد کامنت تودرتو شبیه Reddit یا Bluesky هست.
روش معمول اینه که برای هر سطح تودرتویی یه حلقه بنویسی، که یعنی مثلاً به سه سطح محدود میشی. روش بهتر بازگشتیه: یه لیست تخت از پستها میگیری، با یه Map درخت رو میسازی و یه تابع renderPost که خودشو صدا میزنه HTML رو میسازه. این کد تمیزتره و هر عمقی رو ساپورت میکنه. ولی به گفتهٔ نویسنده هر دو روش یه گلوگاه مشترک دارن: باید کل درخت ساخته بشه تا بشه HTML رو رندر کرد، و کاربر دو بار منتظر میمونه.
با




