درود دوستان من امیررضا هستم. خیلی خوش اومدین به یکی دیگه از سری پستهای با من 🖐🏼 امروز میخوایم با هم یک سوال مصاحبه رو بررسی کنیم که احتمال پرسیدنش هنگام مصاحبههای کاری بالائه. سوال مصاحبه ما اینه 👇🏼
زمان مناسب برای استفاده از SSR و CSR و SSG؟ 🤔
SSR یا همون رندر سمت سرور چیه؟
SSR، مخفف Server-Side Rendering هستش و برای زمانی مناسبه که سئو اهمیت زیادی داره. مثلا برای بلاگها و صفحاتی که برای جذب کاربر طراحی شده (Marketing Pages). به همین دلیله که موتورهای جستجو راحتتر میتونن محتویات صفحه رو بخونن. در SSR محتوای صفحه در سمت سرور تولید میشه و یک فایل HTML کامل به مرورگر ارسال میشه. مرورگر فقط اون رو نمایش میده و بعد جاوااسکریپت اضافه میشه برای تعاملات پویا (UX).
CSR یا همون رندر سمت کلاینت چیه؟
CSR، مخفف Client-Side Rendering هست که ابتدا یک فایل HTML خالی یا ساده از سرور به مرورگر ارسال میشه. بعد جاوااسکریپت در مرورگر اجرا میشه و محتوای صفحه رو با استفاده از فریمورک هایی مثل Vue و React یا Angular میسازه. برای مثال اگه میخوایم دشبورد طراحی کنیم و یا مثلا محتویات صفحه، بعد از احراز هویت به کاربر نمایش داده بشه، از CSR استفاده میکنیم. به این دلیله که برنامه ما بعد از لود اولیه خیلی سریعتر میتونه عمل کنه چرا که بعد از بارگذاری اولیه تعاملات بسیار سریعتر انجام میشه و همچنین تجربهکاربری نرمتری خواهیم داشت مخصوصا در اپلیکشنهای تکصفحهای (SPA).
SSG یا همون تولید استاتیک چیه؟
SSG، مخفف Static Site Generation هست که در تمام صفحات در زمان بیلد روی سرور یا هنگام دپلوی ساخته میشه و بصورت فایل HTML آماده ذخیره میشن. وقتی کاربر وارد سایت میشه فایل ها بلافاصله از CDN یا سرور ارائه میشه. اگه محتویات ما داینامیک نیستن و در گذر زمان خیلی تغییر نمیکنه و همچنین تعامل زیادی با کاربر نداره، اما همچنان سئو اهمیت داره، بهتره که از SSG استفاده کنیم. چون صفحات ما یک بار تولید و کش میشن و تا زمانی که نیاز نباشه، از همون محتویات کش شده استفاده میشه.
ISR یا همون بازسازی استاتیک بصورت افزایشی چیه؟ 🧐
گاهی لازم میشه روشها رو ترکیب کنیم. ISR یا Incremental Static Regeneration این کار رو انجام میده. صفحات مثل SSG ساخته میشن، اما در بازههای زمانی مشخص، بهصورت خودکار بروز میشن؛ بنابراین سرعت SSG و بهروز بودن SSR رو همزمان داریم.
خب دوستان رسیدیم به پایان یکی دیگه از پستهای و باهم یک سوال مهم مصاحبه رو بررسی کردیم. یادتون نره اگر سوال یا نظری داشتید حتما در قسمت کامنتها بپرسید قطعا پاسخ خواهم داد 👋🏼
اگر به دنبال سوالات مصاحبه بیشتری هستید میتونین یه سری به 70 سوال مصاحبه جاوااسکریپت + جواب اختصاصی متنی و ویدئویی در دیتی بزنید 👀
