欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端渲染CSR和SSR的結合使用思路詳解

 更新時間:2022年12月22日 13:08:16   作者:白憶宇  
以往的 SSR 方式有很多,都是人想出來的嘛,基本思路是讓服務器提前渲染好然后等請求來的時候加渲染好的頁面直接發(fā)給客戶端瀏覽器,這篇文章主要介紹了前端渲染CSR和SSR的結合使用分析,需要的朋友可以參考下

小聊: 我們都知道,以往的CSR(客戶端瀏覽器渲染)多多少少會有一點點 SEO 問題,不只是 SPA(單頁面應用程序),只不過 SPASEO 問題比較嚴重,一般的前端項目有很多個頁面,渲染的壓力是分散的,所以頁面渲染速度很快,基本夠爬蟲抓到很多內容,但 SPA 只有一個頁面。而我們的 SSR (服務器渲染)可以彌補像 SPA 項目的 SEO(搜索引擎優(yōu)化) 不友好問題。但是它本身對比 CSR 也是有不足的。所以,為什么不可以結合它們兩個的優(yōu)點去進行使用呢?

1. 思路

以往的 SSR 方式有很多,都是人想出來的嘛,基本思路是讓服務器提前渲染好然后等請求來的時候加渲染好的頁面直接發(fā)給客戶端瀏覽器,有人就會想,誒,這不就像 jsp 這樣的前后端不分離嘛。但 SSR 是在前后端分離的基礎上借用了這一思想。

現(xiàn)在已經有了一下成熟的框架可以幫助 SPA 項目完美的使用 SSRSEO 進行提升,從而提高網站搜索排名。比如 Nuxt ,我這里會以 Nuxt 為例,對 CSRSSR 的結合使用做出分析,這樣會有利與我們網站渲染的設計。當然,不了解 Nuxt 也沒關系,我不會講它的使用,也不需要,我要聊的是思考后的可行性和結論。

Nuxt 有通用渲染和混合渲染的概念,簡單解釋就是提供 CSRSSR 的結合使用的方案,默認是 SSR ,你可以根據需求改成 CSR。它有 路由和 js/ts 文件可選的方案,就是說我們可以選擇哪些頁面或者文件使用 CSR。

2. 以將文件設置成CSR為例

Nuxt 會按照約定,帶有 .client 后綴的文件,會被設置成在客戶端渲染。
比如 elment-plus.tselement-plus.client.ts

基于我們知道客戶端渲染(CSR)和服務端渲染(SSR)的區(qū)別,明知道 Nuxt 就是服務端渲染來進行 SEO 的,那為什么又要提供可設置成客戶端渲染呢?那就要說到 CSRSSR 的優(yōu)點與缺點了,挑重點說一下。

  • CSR
  • 優(yōu)點:完全由瀏覽器下載并解析 JavaScript 代碼后生成 HTML 元素,不用服務器分擔渲染壓力,同時也減少了網絡傳輸。
  • 缺點:首屏加載慢,搜索引擎爬蟲在第一次嘗試索引頁面時不會等待界面完全呈現(xiàn),不利于 SEO。
  • SSR
  • 優(yōu)點:首屏渲染快,有利于 SEO,因為瀏覽器前端初次發(fā)請求時,服務端就會把已經渲染加載好的頁面數據發(fā)過來,節(jié)約很多時間。爬蟲也可以在沒有等待的情況下對其進行索引。
  • 缺點:服務器和瀏覽器環(huán)境不提供相同的 API,雙方需要保證銜接,而且會增加服務器壓力,提高它的成本。

從他們的優(yōu)缺點上看,我們可以綜合他們的優(yōu)缺點,既要 SEO 做好,又要盡量減輕服務器的壓力,把握住設置 js/ts 的渲染時機,可以讓一些部分文件在瀏覽器端渲染。這也就是——混合渲染。

那么下一個問題,應該讓哪一些 js/ts 加上 .client 的限制呢?

3. 哪些文件使用CSR

個人理解,從以下幾點分析:

  • 我們在 js/ts 里的代碼是做什么的?1、內容請求渲染到 HTML 或信息交換;2、頁面交互和動畫效果。做 SEO 爬蟲過來要的是什么?它要的是文字數據,比如鏈接、標題、標簽、導航關鍵詞等等CSRSSR 都可以。我們要利用瀏覽器的“免費勞力”和服務端渲染的 SEO 友好度。
  • 可以得出結論:一個前后端項目,這些爬蟲需要的文字內容需要使用 js 邏輯動態(tài)地從后臺獲取,那么絕對要在服務端渲染準備好等請求的時候發(fā)過來;
  • 如果是一些好看的 js 交互的樣式效果,爬蟲還沒看到就會走掉也沒關系,它不會管你頁面有多炫酷好看的,所以這樣的 js 完全可以讓瀏覽器解析加載,就比如 element-plusjs 配置文件,這樣有關它的渲染配置會在客戶端生效。

其實 Nuxt 也還提供了路由選擇是 CSR 還是 SSR 的方式,也很容易理解,一個路由頁面要里面靜態(tài)內容更多的話,js 請求也比較少,那么它更適合瀏覽器渲染。

Nuxt SEO這方面做得很好,當然也不止 SEO,它不只是為了 SEO 才設計的,里面有很多方便開發(fā)、性能優(yōu)化的有趣功能。

如果對 Nuxt 感興趣的話,不妨了解它,它是基于 vue.js 的,完全支持 vue.js 語法,未來可期~。Nuxt3官網 https://v3.nuxtjs.org/

到此這篇關于前端渲染CSR和SSR的結合使用分析的文章就介紹到這了,更多相關前端渲染CSR和SSR使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • javascript中的鏈式調用

    javascript中的鏈式調用

    鏈式調用就是調用對象的方法后返回到該對象,嚴格來講它并不屬于語法,而只是一種語法技巧,js令人著迷的一點就是這里。
    2010-02-02
  • ES6標準 Arrow Function(箭頭函數=>)

    ES6標準 Arrow Function(箭頭函數=>)

    ES6標準新增了一種新的函數:Arrow Function(箭頭函數),為什么叫Arrow Function?因為它的定義用的就是一個箭頭
    2020-05-05
  • es6 for循環(huán)中l(wèi)et和var區(qū)別詳解

    es6 for循環(huán)中l(wèi)et和var區(qū)別詳解

    這篇文章主要介紹了es6 for循環(huán)中l(wèi)et和var區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 按下Enter焦點移至下一個控件的實現(xiàn)js代碼

    按下Enter焦點移至下一個控件的實現(xiàn)js代碼

    正如標題所言使用js操作按下Enter焦點移至下一個控件,具體的實現(xiàn)示例如下,需要的朋友可以參考下
    2013-12-12
  • JavaScript 異步調用

    JavaScript 異步調用

    本文通過一個小小題目逐步走進javascript 異步調用問題,本文附有解答過程,感興趣的朋友一起看看吧
    2017-10-10
  • 理解JS綁定事件

    理解JS綁定事件

    這篇文章主要幫助大家深入理解JS綁定事件,介紹了六種JS綁定事件的情況,感興趣的小伙伴們可以參考一下
    2016-01-01
  • webpack5搭建一個簡易的react腳手架項目實踐

    webpack5搭建一個簡易的react腳手架項目實踐

    本文文章主要介紹了webpack5搭建一個簡易的react腳手架項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • JS遠程獲取網頁源代碼實例

    JS遠程獲取網頁源代碼實例

    獲取網頁源代碼的方法有很多,本文為大家介紹下使用JS是如何做到的,感興趣的朋友可以學習下哦
    2013-09-09
  • 詳解ECMAScript6入門--Class對象

    詳解ECMAScript6入門--Class對象

    本篇文章主要介紹了詳解ECMAScript6入門--Class對象,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 微信小程序實現(xiàn)上傳多張圖片、刪除圖片

    微信小程序實現(xiàn)上傳多張圖片、刪除圖片

    這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)上傳多張圖片、刪除圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評論