SPA架構的優點和缺點以及一些思考
阿新 • • 發佈:2019-01-09
SPA是什麼?
全稱是單頁面應用。
一個SPA就是一個WEB應用,它所需的資源(HTML CSS JS等),在一次請求中就載入完成,也就是不需重新整理地動態載入。
用術語“單頁”就是因為頁面在初始化載入後就永遠不會重新載入重新整理。
優點:
減輕伺服器端的壓力。
因為伺服器先將一份包含了靜態資源、JavsScript和模板的靜荷資料(payload)傳送到了客戶端,之後客戶端只需要獲取渲染頁面或檢視所需要的資料即可。
payload就是起關鍵作用的資源
提高了頁面的渲染效果。
由於移動裝置的流行,可以開發提供JSON格式資料的網路服務,然後可以提供不同的客戶端使用。
SPA的使用,我們可以使用一個HTTP API,一個HTTP API相比在服務端渲染一個HTML頁面有諸多好處,這樣就可以很方便的進行單元測試等操作,還可以被其他很多客戶端程式所用。
SPA最大的好處就是大量的工作都在瀏覽器中完成,服務端承擔更少的工作,這樣就可以處理更多的請求。同時SPA需要額外的請求模版開銷,我們可以通過預編譯模版、快取機制和將多個模板拼接成一個大的模板來減少請求數量。
缺點:
首屏載入時間會很長。
SEO不友好。
主要是因為SPA利用了hash片段實現路由,而利用hash片段不會作為HTTP請求中的一部分發送給伺服器。
而SPA使用hash片段的目的是:當片段的內容傳送變化時,瀏覽器不會像URI傳送變化時那樣發起新的網路請求。這樣就可以只請求頁面或檢視渲染所需要的資料,而不是為每一個頁面獲取並解析整份文件。