در سایت سنتی، با هر کلیک روی لینک، مرورگر صفحهی کاملاً جدیدی از سرور میگیرد. در SPA فقط یک بار صفحهی اصلی بارگذاری میشود و بعد جاوااسکریپت محتوا را در همان صفحه عوض میکند. دادهها از طریق API گرفته میشود و فقط همان بخشی که لازم است بهروز میشود.
مثال#
نرمافزار ایمیل تحت وب را در نظر بگیرید. وقتی روی یک نامه کلیک میکنید، لیست کناری و منو سر جایشان میمانند و فقط متن نامه عوض میشود. صفحه چشمک نمیزند و حس کار با یک برنامهی دسکتاپ را دارد.
مزایا#
- تجربهی روانتر و سریعتر بعد از بارگذاری اولیه
- جدا بودن فرانتاند و بکاند، با ارتباط از راه API
- امکان استفاده از یک بکاند برای وب و موبایل
معایب#
- بارگذاری اولیه ممکن است سنگین باشد، چون بخش بزرگی از جاوااسکریپت باید دانلود شود.
- اگر درست پیاده نشود، موتورهای جستجو ممکن است محتوا را نبینند و سئو آسیب ببیند.
- دکمهی برگشت مرورگر و آدرس صفحات نیاز به مدیریت دقیق دارد.
راهکار رایج#
برای سایتهایی که سئو مهم است، بسیاری از تیمها از رندر سمت سرور استفاده میکنند تا HTML کامل در پاسخ اول باشد. کتابخانههایی مثل React و Vue معمولاً برای ساخت SPA بهکار میروند.
اشتباه رایج#
هر سایتی را لازم نیست SPA کرد. وبلاگ، سایت شرکتی و فروشگاههای ساده معمولاً با روش سنتی یا ترکیبی سادهتر و بهتر جواب میدهند.