單頁面應用(SinglePage Web Application,SPA)
- 只有一張Web頁面的應用,是一種從Web服務器加載的富客戶端,單頁面跳轉僅刷新局部資源 ,公共資源(js、css等)僅需加載一次,第一次進入頁面時會請求一個html文件,刷新清除一下,切換到其他組件,此時路徑也相應變化,但是並沒有新的html文件請求
- 其實只有一個空的DIV標籤,其他都是js動態生態的內容
單頁面應用所謂路由跳轉原理:
- 瀏覽器的url地址發生變化,但是其實並沒有發送請求,也沒有刷新整個頁面
- 根據我們配置的路由信息,每次點擊切換路由,會切換到不同的組件顯示,類似於選項卡功能的實現,但是同時url地址欄會變化
- 分爲HashRouter和BrowserRouter兩種模式
單頁面應用的優點
頁面跳轉: js渲染
優點: 頁面切換快
缺點: 首屏時間稍慢,SEO差
1. 爲什麼頁面切換快?
頁面每次切換跳轉時,並不需要處理html
文件的請求,這樣就節約了很多HTTP
發送時延,所以我們在切換頁面的時候速度很快。
2. 爲什麼首屏時間慢,SEO 差?
單頁應用的首屏時間慢,首屏時需要請求一次html
,同時還要發送一次js
請求,兩次請求回來了,首屏纔會展示出來。相對於多頁面應用,首屏時間慢。
SEO效果差,因爲搜索引擎只認識html
裏的內容,不認識js
渲染生成的內容,搜索引擎不識別,也就不會給一個好排名,會導致單頁應用做出來的網頁在搜索引擎上的排名差。
3. 爲什麼還要用 Vue 呢?
Vue
官方提供了一些其他的技術來解決這些缺點,比如服務端渲染技術(SSR),通過這些技術可以完美解決這些缺點,這樣一來單頁面應用對於前端來說就是非常完美的頁面開發解決方案了。
多頁面應用(MultiPage Application,MPA)
每一次頁面跳轉的時候,後臺服務器都會返回一個新的html文檔,這種類型的網站也就是多頁網站,也叫多頁應用。多頁面跳轉刷新所有資源,每個公共資源(js、css等)需選擇性重新加載,常用於 app 或 客戶端等
多頁面應用的優缺點:
頁面跳轉: 返回HTML
優點: 首屏時間快,SEO效果好
缺點: 頁面切換慢
1. 爲什麼多頁應用的首屏時間快?
首屏時間叫做頁面首個屏幕的內容展現的時間,當我們訪問頁面的時候,服務器返回一個html,頁面就會展示出來,這個過程只經歷了一個HTTP請求,所以頁面展示的速度非常快。
2. 爲什麼搜索引擎優化效果好(SEO)?
搜索引擎在做網頁排名的時候,要根據網頁的內容才能給網頁權重,來進行網頁的排名。搜索引擎是可以識別html內容的,而我們每個頁面所有的內容都放在html中,所以這種多頁應用SEO排名效果好。
3. 缺點:切換慢
每次跳轉都需要發送一個HTTP請求,如果網絡狀態不好,在頁面間來回跳轉時,就會發生明顯的卡頓,影響用戶體驗。
兩者優缺點對比如下:
參考:
https://www.jianshu.com/p/a02eb15d2d70
https://cloud.tencent.com/developer/article/1478932
https://juejin.im/post/6844903512107663368