1. 程式人生 > >靜態頁面、偽靜態頁面、SPA、SSR、預渲染之間的聯絡

靜態頁面、偽靜態頁面、SPA、SSR、預渲染之間的聯絡

寫在前面,本文是我查閱資料得出的粗略理解,如有不對請指正,感謝!

  • 查閱資料得知 爬蟲對URL和檢視網頁原始碼時候檢視到的DOM結構有很強的依賴關係

  • SPA頁面眾所周知檢視網頁原始碼後,除了你寫的index.html裡面的內容 沒有生成的真實DOM結構(通過JS動態增刪,部分搜尋引擎拿不到這些),而且url不用history模式,生成的都帶#號,完全不利於SEO

  • 而SSR服務端渲染,就拿Nuxt來說,可以生成真正的靜態頁和偽靜態頁(在服務端生成或者你本地生成後傳到服務端裡),檢視原始碼的時候,能看到生成的DOM結構,而不再僅僅是index.html裡面的內容,而且URL不帶#號等,所以利於SEO優化

  • 預渲染使用的原理類似於服務端渲染,生成真正的靜態html, 有個外掛 叫做PrerenderSpaPlugin 可以做預渲染

    摘自 https://segmentfault.com/q/1010000012069735

    1. 預渲染在構建階段就已經生成了匹配預渲染路徑的html檔案,你的每個路由都可以作為入口檔案。
    2. 預渲染後其對應資料夾下都有一個index.html,作為路口檔案,之後在跳轉走的是前端路由,並不再請求html檔案。
    3. 首屏預渲染對還需要請求易變資料的頁面不太合適,因為展示的html很可能是上次預渲染的html,等到請求完畢返回資料後再展示最新的html會引起客戶的誤解和疑惑。
    4. 讓你配路由是因為,若你一開始訪問的不是首頁,是其他路由,那麼請求其他路由下已經預渲染好的index.html,否則如果不做預渲染,會請求你的根節點的index.html,再根據路由匹配,鏈到你請求的路由下的頁面
  • 靜態頁和偽靜態頁簡單來講就是靜態頁會生成真正的HTML檔案,偽靜態不會真正生成HTML檔案

    1. 靜態頁面訪問最快;維護較為麻煩。
    2. 動態頁面佔用空間小、維護簡單;訪問速度慢,如果訪問的人多,會對資料庫造成壓力。
    3. 使用純靜態和偽靜態對於SEO(Search Engine Optimization:搜尋引擎優化)沒有什麼本質的區別。
    4. 使用偽靜態將佔用一定量的CPU佔用率,大量使用會導致CPU超負荷。
    5. 詳情瞭解和區別可檢視靜態頁面、動態頁面和偽靜態頁面的區別,以上四條均摘自該文章。

PS: 打個廣告 歡迎大家關注 花粉社群