如何選擇使用SPA還是MPA


如何選擇使用SPA還是MPA

SPA :Single-Page Application,單一頁面應用

MPA:Multiple-Page Application,多頁面應用

基於內容優先原則(content first)來思考這個問題,內容是用戶決定是否使用應用的原因,因此需要回答兩個問題

  1. 你想展示怎樣的內容給用戶
  2. 用戶最希望看到怎樣的內容

Single-Page Application

​ 單一頁面程序在瀏覽器中運行,在使用期間不需要用戶刷新和重新加載資源。GmailGoogle MapsFacebookGithub等都是這種架構的應用。使用SPA架構的應用程序致力於優秀的用戶體驗,因為這種架構不需要刷新,不需要等待,用戶似乎在使用本地程序一般自然,它僅僅是一個網頁,通過Javascript加載了所有的內容

優點

  • 快速,在應用程序生命周期內,所有的資源只需要加載一次,后續僅存在一些與服務器的api請求。
  • 開發更容易,不需要服務端路由來處理,所以很容易開始,甚至可以通過本地打開html的方式使用我們的應用程序。
  • 更容易使用Chrome進行調試
  • 更容易制作手機應用程序,因為可以重用大量的代碼
  • 更高效的使用緩存,一次加載全部的資源,甚至可以離線使用

缺點

  • 很難做SEO優化,這曾經是個難點,但是目前可以使用服務端渲染來處理這個問題。
  • 首次加載緩慢,因為首次加載時需要加載全部的資源。
  • 相比較傳統網頁應用,更容易被跨站腳本攻擊
  • Javascript的內存弱點有可能使高配電腦也變得卡頓

Multiple-Page Application

​ 多頁面程序是我們所知道多更傳統的方式,每次請求都會返回一部分頁面用於展示,一般有更多的層次,也更為復雜。因為Ajax技術的存在,我們可以局部刷新,一定程度上降低了網絡負載,但是相對SPA結構的應用,在開發上會更復雜一些。

優點

  • 對用戶來講,更明確的功能指引,以及更少深度的層次結構
  • 非常利於SEO

缺點

  • 前后端開發關聯緊密。
  • 開發更復雜,開發者需要同時在前后端展開工作,將導致更長的開發周期。

使用SPA還是MPA

如果你有風格迥異的內容以及復雜的分類,那建議使用MPA。

如果的內容擁有一致的體驗,那建議使用SPA。

另外一種方式擁有兩者的優點和更少的缺點,考慮Hybird site


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM