طراحی تک صفحه نرم افزارها چقدر مفید است؟

1397/02/16
برنامه های تحت وب مدت هاست جایگزین برنامه های قدیمی و غیر وبی شده اند. دلیل اصلی گسترش آن ها، سهولت استفاده، بروزرسانی آسان و شاید مهمتر از همه، عدم وابستگی به وسیله اجرا کننده (موبایل، تبلت، لپ تاپ و ...) باشد. حتی کاربران این گونه برنامه ها نیز به آرامی به استفاده از نرم افزارهای موبایل روی آورده اند. نیازهای پیچیده تر و رو به رشد کاربران این موضوع را بوجود آورده است.

اگر به فکر طراحی نرم افزار خود افتاده اید، احتمالاً با دو شکل طراحی نرم افزار آشنا هستید: 1) طراحی چند صفحه ای نرم افزار 2) طراحی تک صفحه ای نرم افزار، که البته هر یک دارای برتری ها و معایب خاص خود هستند. پیش از اینکه طراحی نرم افزار خود را آغاز کنید، سوال مهمی نیازمند پاسخ است، حقیقتاً کدام روش مناسب تر است؟ برای یافتن پاسخ این سوال می بایست Content-First عمل نمود. دلیل این امر اهمیت محتوا نزد کاربران است، محتوایی که تعیین کننده محبوبیت برنامه شما خواهد بود. حتی در بیشتر موارد، چگونگی نمایش مهم تر است.
این نوشته، ترجمه ای آزاد از پست Single-Page Application vs. Multi-Page Application است. در نوشته های آتی، به برتری ها و معایب نرم افزارهای چند صفحه ای خواهم پرداخت.

برنامه های تک صفحه ای
برنامه های تک صفحه ای نرم افزارهایی هستند که درون مرورگر کار می کنند و نکته جالب اینکه در هنگام استفاده و وقوع اتفاقات مختلف، نیازی به بارگذاری مجدد صفحه ندارند.
شاید هر روزه شما با این گونه نرم افزارها سر و کار داشته باشید، Gmail، نقشه های Google، Facebook و ... همگی نوعی برنامه تک صفحه هستند.
نرم افزارهای تک صفحه ای یا به شکل خلاصه SPA، به منظور ارائه UX عالی در محیط مرورگر ایجاد شده اند. این برنامه ها تنها دارای یک صفحه بوده و مابقی محتوا با استفاده از JavaScript درون آن بارگذاری خواهد شد. عدم بارگذاری مجدد صفحه و دوری از عوامل تکراری و کند کننده منجر به رشد چشمگیر سرعت در اینگونه نرم افزارها شده است.
SPA محتوا و ساختار محتوایی خود را به شکل مستقل فراخوانی و Render می کند. این موضوع با استفاده از زیرساخت های پیشرفته JavaScript مانند Angular، Ember.js، Meteor.js، Knockout.js و ... قابل انجام است.
سایت های تک صفحه ای کمک خواهند کرد تا در محیطی کارا و ساده بیشترین تعامل سازنده میان کاربران و وب سایت ایجاد گردد.

فواید SPA:
  • در یک جمله SPA بسیار سریع است، زیرا منابع HTML، CSS و بسیاری از Scriptها تنها یک بار در چرخش حیاط صفحه فراخوانی شده و تنها محتوا در حال جابجایی است.
  • توسعه در آن ساده و پیوسته است. نیازی به کد سمت سرور برای Render صفحات نیست. شروع کار نیز بسیار سریع است و می توانید حتی بدون داشتن سرور و از روی فایل نرم افزار خود را اجرا نمایید.
  • خطایابی SPA در Chrome بسیار ساده بوده و کلیه عملیات شبکه، اجزای صفحه و محتوای مرتبط با آن قابل بررسی است.
  • با استفاده از SPA تولید نرم افزارهای موبایل ساده تر است. زیرا اجزای ایجاد شده قابلیت استفاده مجدد داشته و این موضوع کار را بسیار آسان خواهد کرد.
  • SPA بر روی حافظه داخلی به شکلی موثر Cache می شود. تنها یک Request ارسال، داده ها ذخیره شده و سپس این داده ها حتی به شکل Offline نیز قابل استفاده هستند.

معایب SPA:
  • ساخت نرم افزارهای تک صفحه ای SEO Friendly کمی پیچیده و نیازمند دانش بالا است.
  • فعال بودن JavaScript در SPA امری حیاتی است. در صورتی که کاربر JavaScript مرورگر خود را غیرفعال کند، نرم افزار شما دچار مشکل خواهد شد.
  • در مقایسه با نرم افزارهای سنتی، SPA دارای امنیت کمتری است. دلیل این موضوع XSS یا Cross site scripting است. در این حالت حمله کننده به جای کاربر می تواند کدی را تزریق کند. این موضوع به معنی امن نبودن نیست بلکه رعایت نکات امنیتی نیازمند دقت، تجربه و دانش بیشتری است.
  • کمبود حافظه در JavaScript گاهی حتی منجر به کندی سیستم های قدرتمند می شود.
  • دکمه های Back و Forward مرورگر در این نرم افزارها فاقد استفاده هستند.

نتیجه گیری:
نرم افزارهای SPA روشی نوین جهت ارائه محتوا ارائه می کنند. دیدگاهی که می تواند UI و UX را دچار تحول چشمگیر کند که البته مانند هر روشی دارای نواقص خاص خود است. شاید یکی از مشکلات موجود، حجم محدود نرم افزارهای تولید شده به این روش و تجربه کم برنامه نویسان باشد. در حال حاضر SPA به هیچ وجه جایگزینی قطعی برای MPA نیست اما امکانات ارائه شده جای تامل دارند و در واقع نیاز شما تصمیم گیرنده اصلی خواهد بود.
 
User Avatar
نویسنده : علی هریسچیان