مقایسه-روش_های-رندرینگ

مقایسه روش‌ های رندرینگ SSR ،CSR ،SSG و ISR

فهرست مطالب

تکنیک‌های رندرینگ سایت، به صورت مستقیم بر روی تجربه کاربری، عملکرد سایت و سئو تاثیر می‌گذارند. این عوامل برای توسعه دهندگانی که می‌خواهند وب سایتی مقیاس پذیر و موفق داشته باشند بسیار مهم هستند. در هسته وب سایت‌ها، رندر کردن وب سایت به پروسه تبدیل کدی که نوشته‌اید به محتوای بصری گفته می‌شود. این پروسه بر روی همه چیز از جمله سرعت آپلود صفحات و سئو تاثیر می‌گذارد.

فرایند-رندرینگ-مرورگر

فرایند رندرینگ در مرورگر

رندرینگ وب سایت فرایندی است که طی آن مرورگر، کدهای HTML ،CSS و جاوا اسکریپت شما را به محتوای تعاملی تبدیل می‌کند که کاربران می‌توانند آن را ببینند و با آن تعامل داشته باشند. مرورگر از قدم‌های زیر در پروسه رندرینگ استفاده می‌کند:

  1. تجزیه HTML: مرورگر کدهای HTML شما را می‌خواند و مدل DOM را می‌سازد.
  2. پردازش CSS: سی اس اس شما را به مدل CSSOM تجزیه می‌کند.
  3. ساخت Render Tree: مرورگر DOM و CSSOM را با هم ترکیب می‌کند تا یک درخت رندر ایجاد شود که نشان دهنده آنچه نمایش داده خواهد شد، باشد.
  4. طرح بندی Layout: مرورگر موقعیت و اندازه هر عنصر را محاسبه می‌کند. 
  5. رنگ آمیزی یا همان Paint: رنگ‌ها، متون و تصاویر را به هر عنصر بصری اعمال می‌کند.
  6. ترکیب یا Composite: لایه‌ها را در تصویر نهایی که کاربر می‌بیند مونتاژ می‌کند.

کل این فرایند، کد شما را به یک رابط کاربری قابل استفاده در مرورگر تبدیل می‌کند. جاوا اسکریپت با فعال کردن به روز رسانی‌های محتوای پویا و تعامل غنی، رندرینگ را افزایش می‌دهد. چه مستقیما DOM را دستکاری کنید و چه از فریمورکی مانند React استفاده کنید، جاوا اسکریپت به شما امکان می‌دهد عناصر را در لحظه و بدون بارگذاری مجدد صفحه به روز رسانی کنید.

انواع روش‌‎های رندرینگ

عملکرد وب سایت‌های مدرن فقط وابسته به کدهای بهینه یا سریع نیست بلکه وابستگی شدیدی به مسیر کد به سوی مرورگر کاربر نیز دارد. انتخاب یک استراتژی مناسب برای رندرینگ، از لحاظ معماری اپلیکیشن اهمیت بالایی دارد. در ادامه چهار روش رندرینگ CSR ،SSR ،SSG و ISR را مورد بررسی قرار می‌دهیم:

رندرینگ-سمت-کلاینت

رندرینگ سمت کلاینت CSR

رندرینگ سمت کلاینت روش پیش فرض در فریمورک‌های مدرن مانند React و Angular است. در CSR یا همان Client-Side Rendering، وقتی کاربر وارد سایت می‌شود سرور یک صفحه HTML تقریبا خالی را به مرورگر می‌فرستد. سپس مرورگر فایل‌های جاوا اسکریپت را دانلود کرده، اجرا می‌کند و در نهایت محتوا را درون آن صفحه خالی می‌سازد و به نمایش در می‌آورد. این روش در ساخت داشبوردهای ادمین و اپلیکیشن‌های تعاملی خصوصی که سئو در آن‌ها اهمیتی ندارد کاربر دارد. 

مزایای CSR

این روش محبوب مزایای مختص خود را دارد مانند:

  • تجربه کاربری غنی: پس از بارگذاری اولیه، جابجایی بین صفحات آنی است زیرا نیازی به درخواست مجدد HTML از سرور نیست.
  • کاهش بار سرور: سرور فقط فایل‌های استاتیک را سرو می‌کند و پردازش منطق نمایش بر عهده دستگاه کاربر است. 
  • توسعه آسان‌تر: جداسازی کامل فرانت اند و بک اند.

معایب CSR

انتقادهایی نیز بر استراتژی رندرینگ سمت کلاینت وارد است مانند:

  • سئوی ضعیف: اگر چه گوگل در ایندکس کردن جاوا اسکریپت پیشرفت کرده، اما ربات‌های خزنده (Crawlers) هنوز در پردازش صفحات با CSR با چالش روبرو هستند و ممکن است محتوا را به خوبی نبینند.
  • کند بودن بارگذاری اولیه: کاربر باید منتظر بماند تا تمام JS دانلود و اجرا شود تا بتواند محتوای صفحه را ببیند.
  • وابستگی به دستگاه کاربر: اگر دستگاه کاربر ضعیف باشد، پردازش جاوا اسکریپت طول کشیده و سایت کندتر عمل می‌کند.
رندرینگ-سمت-سرور

رندرینگ سمت سرور SSR

این روش، بازگشتی مدرن به روش سنتی وب است. در Server-Side Rendering، صفحات HTML کامل در سرور ساخته شده و به مرورگر فرستاده می‌شود. با هر درخواست کاربر، سرور داده‌های مورد نیاز را از دیتابیس می‌گیرد، HTML صفحه را می‌سازد و آن را به مرورگر می‌فرستد. سپس مرورگر صفحه را نمایش می‌دهد و در مرحله‌ای به نام Hydration، کدهای جاوا اسکریپت به HTML متصل می‌شوند تا صفحه تعاملی شود. این استراتژی در سایت‌های خبری پویا، فروشگاه‌های اینترنتی بزرگ و هر صفحه‌ای که محتوای آن دائما تغییر می‌کند و سئو حیاتی است، کاربرد دارد.

مزایای SSR

رندرینگ سمت سرور مزایای مختلفی دارد مانند:

  • سئوی عالی: موتورهای جستجو یک صفحه HTML کامل و پر محتوا را دریافت می‌کنند که برای ایندکس کردن ایده آل است.
  • نمایش سریع محتوا: کاربر بلافاصله پس از دریافت پاسخ سرور، محتوا را می‌بیند.
  • مناسب برای شبکه‌های اجتماعی: وقتی لینک سایت شما در تلگرام یا توییتر به اشتراک گذاشته می‌شود، پیش نمایش آن به درستی کار خواهد کرد.

معایب SSR

رندرینگ سمت سرور نیز معایبی دارد که قبل از استفاده باید آن‌ها را بدانید:

  • بار سنگین روی سرور: سرور باید برای تک تک کاربران صفحه را از نو بسازد که در ترافیک بالا می‌تواند باعث کندی یا افزایش هزینه شود.
  • TTFB کندتر: چون سرور قبل از پاسخ دادن باید پردازش را انجام دهد، زمان پاسخ اولیه آن نسبت به فایل‌های استاتیک طولانی‌تر است.
  • پیچیدگی در Caching: کش کردن صفحات داینامیک SSR از فایل‌های استاتیک دشوارتر است. 

سایت خود را با قدرت پویان آی‌ تی رندر کنید!

از آنجایی که روش‌های SSR و ISR فشار پردازشی مستقیمی بر سرور وارد می‌کنند، انتخاب یک زیرساخت قدرتمند الزامی است. سرور مجازی فنلاند پویان آی‌ تی بهترین میزبان برای فریمورک‌های مدرن شماست.

خرید سرور مجازی فنلاند

 
تولید-سایت-استاتیک

تولید سایت استاتیک SSG

SSG یک روش محبوب برای دستیابی به سرعت بالا است. در این روش، صفحات در زمان بیلد ساخته می‌شوند نه زمان درخواست کاربر. زمانی که شما کد می‌زنید و دستور بیلد (مانند npm run build) را اجرا می‎‌کنید، فریمورک تمام صفحات سایت را به فایل‌های HTML استاتیک تبدیل می‌کند. این فایل روی یک CDN قرار می‌گیرد. از این استراتژی می‌توانید در وبلاگ‌های شخصی، اسناد، لندینگ پیج‌ها و سایت‌هایی که محتوای آن‌ها به ندرت تغییر می‌کند استفاده کرد.

مزایای SSG

Static-Site Generation به واسطه سرعت بالای خود مزایای بسیاری را ارائه می‌دهد:

  • سرعت فوق العاده: فایل‌ها از قبل آماده‌اند و از نزدیک‌ترین سرور CDN به کاربر تحویل داده می‌شوند. هیچ پردازشی سمت سرور یا کلاینت برای ساخت HTML لازم نیست.
  • امنیت بالا: چون دیتابیس مستقیما درگیر درخواست کاربر نیست و فقط فایل استاتیک پردازش می‌شود، سطح حمله بسیار کم است.
  • هزینه پایین: میزبانی فایل‌های استاتیک هزینه پایینی دارد.

معایب SSG

سرعت بسیار بالا معایبی نیز با خود می‌آورد، برخی از معایب SSG:

  • زمان بیلد طولانی: اگر سایت شما 10000 محصول داشته باشد، هر بار که یک غلط املایی را اصلاح کنید، باید کل سایت دوباره بیلد شود که زمان بر است.
  • عدم امکان نمایش داده‌های لحظه‌ای: اگر قیمت دلار تغییر کند یا موجودی کالا عوض شود، تا بیلد بعدی کاربر عدد قدیمی را خواهد دید. 
بازسازی-استاتیک-افزایشی

تولید استاتیک افزایشی ISR

ISR پاسخی هوشمندانه به محدودیت‌های SSG است. این روش به شما اجازه می‌دهد مزایای استاتیک بودن را حفظ کنید، اما بدون نیاز به بیلد مجدد کل سایت. Incremental Static Regeneration ترکیبی از SSG و SSR است. شما صفحات را به صورت استاتیک بیلد می‎‌کنید اما با یک تاریخ انقضا. بدین صورت که:

  1. کاربر وارد می‌شود: نسخه استاتیک موجود را می‌بیند.
  2. اگر زمان انقضا گذشته باشد، سرور در پس زمینه نسخه جدید صفحه را می‌سازد.
  3. کاربر دوم: نسخه جدید و آپدیت شده را می‌بیند.

از این روش می‌توان در سایت‌های فروشگاهی بزرگ، وبلاگ‌های بسیار حجیم یا پلتفرم‌های لیست آگهی استفاده کرد.

مزایای ISR

روش ترکیبی ISR مزایای زیر را به ارمغان می‌آورد:

  • ترکیب سرعت و تازگی: سرعت SSG را دارید اما محتوای شما کهنه نمی‌ماند.
  • مقیاس پذیری بی نهایت: می‌توانید میلیون‌ها صفحه داشته باشید بدون اینکه زمان بیلد شما به ساعت‌ها برسد
  • کاهش بار سرور: برخلاف SSR، برای هر کاربر پردازش انجام نمی‌شود، بلکه برای مثال هر 10 دقیقه یکبار پردازش صورت می‌گیرد. 

معایب ISR

معایب Incremental Static Regeneration عبارتند از:

  • پیچیدگی دیباگ: درک اینکه کاربر دقیقا چه نسخه‌ای را می‎‌بیند ممکن است گاهی گیج کننده باشد.
  • تاخیر در آپدیت: برخلاف SSR که آنی است، در ISR ممکن است برخی کاربران برای لحظاتی نسخه قدیمی را ببینند تا نسخه جدید در پس زمینه آماده شود.

جدول مقایسه روش‌های رندرینگ

در ادامه با یک جدول مقایسه‌ای خلاصه این روش‌های رندرینگ را مقایسه می‌کنیم.

معیار مقایسهCSR (Client)SSR (Server)SSG (Static)ISR (Incremental)
ساخت HTMLمرورگر کاربرسرور (لحظه‌ای)زمان BuildBuild + پس‌زمینه
رتبه سئو (SEO)ضعیف / متوسطعالیعالیعالی
سرعت لود اولیهسریع (اسکلت)متوسطبسیار سریعبسیار سریع
فشار بر سروربسیار ناچیززیادصفر (CDN)بسیار کم
تازگی محتواآنلاین و زندهآنلاین و زندهتا بیلد بعدیبه‌روزرسانی دوره‌ای
مثال بارزداشبورد ادمیندیجی‌کالا / آمازونسایت شرکتیخبرگزاری بزرگ

جمع بندی

در مقایسه روش‌های رندرینگ وب سایت، هیچ بهترین مطلقی وجود ندارد. وب مدرن به سمت رویکرهای هیبریدی یا ترکیبی حرکت کرده است. مثلا فریمورکی مانند Next.js به شما اجازه می‌دهد برای صفحه تماس با ما از SSG، برای صفحه لیست محصولات از ISR و برای صفحه سبد خرید از SSR یا CSR استفاده کنید. درک عمیق این چهار مفهوم (CSR ،SSR ،SSG ،ISR) مرز بین یک توسعه دهنده معمولی و یک مهندس نرم افزار ارشد است. برای پروژه‌های محتوا محور، ISR معمولا نقطه طلایی بین عملکرد و پویایی است، در حالی که برای اپلیکیشن‌های تعاملی، CSR همچنان پادشاهی می‌کند.

سوالات متداول

بله، این دقیقا همان چیزی است که فریمورک‌های مدرن مانند Nuxt.js یا Next.js را قدرتمند می‌کند. شما مجبور نیستید یک روش را برای کل سایت انتخاب کنید. می‌توانید صفحه اصلی وبلاگ را با SSG، صفحه لیست محصولات را با ISR و داشبورد را با CSR پیاده سازی کنید.

گوگل در سال‌های اخیر بسیار هوشمند شده و می‌تواند کدهای جاوا اسکریپت را اجرا و ایندکس کند، اما این فرایند تضمین شده نیست. خزیدن سایت‌های CSR برای گوگل هزینه پردازشی دارد و در صف دوم اولویت قرار می‌گیرد. ممکن است روزها یا هفته‌ها طول بکشد تا محتوای جدید شما ایندکس شود. بنابراین اگر سئو برایتان حیاتی است، ریسک نکنید و سراغ روش‌های دیگر بروید.

این اصطلاح در SSR و SSG زیاد شنیده می‌شود. وقتی سرور فایل HTML را ارسال می‌کند، این صفحه مانند یک تصویر خشک است، دکمه‌ها دیده می‌شوند اما کار نمی‌کنند. Hydration لحظه‌ای است که مرورگر فایل‌های جاوا اسکریپت را دانلود کرده و به این اسکلت HTML متصل می‌کند. 

منابع

  • https://www.ramotion.com/blog/web-rendering-types-comparison/

به این مقاله امتیاز دهید!

میانگین امتیاز 0 / 5. تعداد رأی ها : 0

هنوز هیچ رأیی داده نشده. اولین نفر باشید!

اشتراک گذاری در تلگرام اشتراک گذاری در لینکدین اشتراک گذاری در ایکس کپی کردن لینک پست

و در ادامه بخوانید

اولین دیدگاه را اضافه کنید.

    برچسب ها

    فرانت اند وب سایت