Single Page Application or Multiple Page Application (SPA vs MPA)


SPA (Single Page Application)

เว็บแอปพลิเคชั่นหน้าเดียวเหมาะอย่างยิ่งสำหรับการสร้างแพลตฟอร์มแบบไดนามิก
ที่มีปริมาณข้อมูลขนาดเล็ก นอกจากนี้แอปหน้าเดียวเหมาะอย่างยิ่งสำหรับเป็นพื้นฐาน
สำหรับการพัฒนาแอปมือถือในอนาคต แต่เอาเข้าจริงแล้ว เว็บใหญ่ๆ หลายๆ เว็บ ก็ไม่ได้เป็น Single page application แบบสมบูรณ์นะครับ ก็ยังคงใช้แบบผสมผสานกันไปตามรูปแบบ หรือสถานการณ์ เช่น อะไรที่เป็นการใช้งานที่ต่อเนื่องกันจริงก็จะออกแบบให้เป็น Single page application เพื่อให้การใช้งานลื่นไหลมากที่สุด

- ลดเวลาตอบสนองและต้นทุนฮาร์ดแวร์

- UI ที่ยืดหยุ่น

- แอปพลิเคชันหน้าเดียวให้ประสบการณ์ที่ลื่นไหลและตอบสนองมากขึ้น

- แอพระดับองค์กรนั้นยากต่อการออกแบบ และดูแลรักษาเว็บแบบ SPA
  เนื่องจากจำนวนไฟล์ที่สร้างขึ้นจำนวนมาก

- SEO นั้นมีประสิทธิภาพน้อยลง เนื่องจากซอฟต์แวร์รวบรวมข้อมูล SEO ส่วนใหญ่อาศัยเนื้อหาที่มีเสถียรภาพภายในหน้าเว็บที่แตกต่างกัน

- JavaScript ไม่ใช่ภาษาที่ต้องคอมไพล์ดังนั้นซอร์สโค้ดสามารถถูกเปิดเผยต่อผู้ใช้ที่เป็นอันตราย

- SPA คือของใหม่และทีมพัฒนาของคุณจะต้องคุ้นเคยกับเครื่องมือเฉพาะ (เช่น: NPM, Webpack เป็นอย่างน้อย )

- ปุ่มย้อนกลับและไปข้างหน้าเบราว์เซอร์ไม่ทำงาน
- History ของเบราว์เซอร์มีเพียงหน้าแรก

ตัวอย่างเว็บเป็น SPA 
- เช่นเมื่อเราเลือก จดหมาย, จดหมายขยะ , ส่งแล้ว ข้อมูลจะไม่ถูกโหลดใหม่ทั้งหน้า
https://cashnotify.com
https://seedlipdrinks.com
https://angular-university.io/
- (คลิป) https://www.youtube.com/watch?v=Bn0wby8fwFg



MPA (Multiple Page Application)

แอปพลิเคชั่นหลายหน้าเหมาะสำหรับ บริษัท ขนาดใหญ่ที่มีผลิตภัณฑ์หรือบริการที่หลากหลายซึ่งต้องการฟีเจอร์และเมนูมากมาย MPA นั้นเหมาะสำหรับร้านค้าออนไลน์ไซต์ธุรกิจแคตตาล็อก ที่ใช้เว็บไซต์เหล่านี้อาจมีฐานผู้ใช้ที่หลากหลาย หากคุณมีเนื้อหาและฟีเจอร์มากมายที่จะรวมไว้ในเว็บไซต์หรือถ้าคุณขายผลิตภัณฑ์ และบริการหลายรายการ MPA น่าจะเป็นตัวเลือกที่ดี

หากต้องการดูตัวอย่างของเว็บแบบ MPA แค่คิดถึงเว็บไซต์ที่ซับซ้อนที่มีหลายหน้า
เช่น Amazon หรือ eBay

- MPA ทำงานโดยการร้องขอหลายครั้งระหว่างไคลเอนต์และเซิร์ฟเวอร์ เมื่อเว็บไซต์มีความซับซ้อนเพิ่มขึ้น สิ่งต้องมีสิ่งที่เข้ามาช่วยคือ AJAX , JQUERY ซึ่งช่วยให้หน้าเว็บได้รับการอัปเดตโดยไม่ต้องโหลดซ้ำ

- โดยปกติการโหลดหน้าเริ่มต้นจะเร็วกว่าการโหลดหน้าเริ่มต้นของ SPA

- SEO นั้นง่ายและมีประสิทธิภาพ เครื่องมือค้นหาส่วนใหญ่สร้างขึ้นสำหรับ MPA

- เฟรมเวิร์กฝั่ง MPA ส่วนใหญ่มีการรักษาความปลอดภัยที่ผ่านการทดสอบ และทดสอบแล้ว

- MPA เครื่องมือการดีบักที่ได้รับความนิยมมากมายรวมอยู่ใน IDE (โปรแกรมที่เอาไว้เขียนโปรแกรม)

- MPA มักจะถูกกว่าในหลายๆเรื่องเพราะใช้เทคโนโลยีที่เป็นที่ยอมรับมากกว่า และมีนักพัฒนาในตลาดมากขึ้น



Ref:
https://www.scalablepath.com/blog/single-page-applications/
https://yalantis.com/blog/single-page-apps-vs-multiple-page-apps/
https://rubygarage.org/blog/single-page-app-vs-multi-page-app
https://medium.com/@puuga/