日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

一文搞懂:什么是SSR、SSG、CSR?前端渲染技術(shù)全解析

來源: 責(zé)編: 時間:2024-05-16 17:43:53 174觀看
導(dǎo)讀在前端開發(fā)的世界里,我們經(jīng)常遇到SSR(服務(wù)器端渲染)、SSG(靜態(tài)站點生成)和CSR(客戶端渲染)這三種渲染技術(shù)。它們各自有著獨特的優(yōu)缺點,適用于不同的場景和需求。下面,我們將詳細介紹這三種技術(shù),并通過代碼示例來加深理解。一、C

在前端開發(fā)的世界里,我們經(jīng)常遇到SSR(服務(wù)器端渲染)、SSG(靜態(tài)站點生成)和CSR(客戶端渲染)這三種渲染技術(shù)。它們各自有著獨特的優(yōu)缺點,適用于不同的場景和需求。下面,我們將詳細介紹這三種技術(shù),并通過代碼示例來加深理解。v2r28資訊網(wǎng)——每日最新資訊28at.com

v2r28資訊網(wǎng)——每日最新資訊28at.com

一、CSR(客戶端渲染)

介紹:v2r28資訊網(wǎng)——每日最新資訊28at.com

CSR(Client-Side Rendering)是前端開發(fā)中最常見的渲染方式。在這種模式下,服務(wù)器主要負(fù)責(zé)提供靜態(tài)的HTML文件(可能包含一些基本的HTML結(jié)構(gòu)和JavaScript腳本),而真正的頁面渲染工作則完全由客戶端的瀏覽器來完成。這意味著頁面內(nèi)容是在用戶的瀏覽器上動態(tài)生成的。v2r28資訊網(wǎng)——每日最新資訊28at.com

優(yōu)點:v2r28資訊網(wǎng)——每日最新資訊28at.com

  • 響應(yīng)速度快:一旦HTML文件加載完成,瀏覽器就可以開始渲染頁面,而不需要等待服務(wù)器返回完整的渲染結(jié)果。
  • 動態(tài)性強:由于頁面渲染在客戶端進行,因此可以方便地實現(xiàn)各種動態(tài)交互效果。
  • 前端部署簡單:只需要一個靜態(tài)服務(wù)即可部署前端代碼,降低了部署成本。

缺點:v2r28資訊網(wǎng)——每日最新資訊28at.com

  • 首屏加載時間長:由于需要加載整個JavaScript包,可能導(dǎo)致首屏加載時間較長,特別是對于復(fù)雜的單頁應(yīng)用(SPA)。
  • 不利于SEO:搜索引擎爬蟲可能無法很好地解析由JavaScript動態(tài)生成的頁面內(nèi)容,導(dǎo)致SEO效果較差。
  • 白屏?xí)r間:在JavaScript代碼加載和執(zhí)行期間,用戶可能會看到空白的頁面,即所謂的“白屏?xí)r間”。

示例(使用React):v2r28資訊網(wǎng)——每日最新資訊28at.com

// 假設(shè)有一個React組件import React from 'react';function MyComponent() {  const [message, setMessage] = React.useState('Hello, CSR!');  const handleClick = () => {    setMessage('Clicked!');  };  return (    <div>      <p>{message}</p>      <button onClick={handleClick}>Click Me</button>    </div>  );}// 在HTML文件中引入React和組件的JavaScript文件// 瀏覽器加載并執(zhí)行這些JavaScript,從而渲染頁面

二、SSR(服務(wù)器端渲染)

介紹:v2r28資訊網(wǎng)——每日最新資訊28at.com

SSR(Server-Side Rendering)是一種在服務(wù)器端完成頁面渲染的技術(shù)。在這種模式下,服務(wù)器接收到客戶端的請求后,會先根據(jù)請求數(shù)據(jù)和模板文件生成完整的HTML頁面,然后將這個頁面直接發(fā)送給客戶端。這樣,用戶可以直接看到完成的內(nèi)容,無需等待JavaScript加載和執(zhí)行。v2r28資訊網(wǎng)——每日最新資訊28at.com

優(yōu)點:v2r28資訊網(wǎng)——每日最新資訊28at.com

  • 首屏加載速度快:由于服務(wù)器已經(jīng)生成了完整的HTML頁面,因此客戶端可以直接顯示這個頁面,無需等待JavaScript加載和執(zhí)行。
  • SEO友好:搜索引擎爬蟲可以很好地解析由服務(wù)器生成的HTML頁面內(nèi)容,有利于SEO優(yōu)化。
  • 適合復(fù)雜頁面:對于包含大量數(shù)據(jù)、需要復(fù)雜計算的頁面,SSR可以更好地處理并減少客戶端的負(fù)載。

缺點:v2r28資訊網(wǎng)——每日最新資訊28at.com

  • 服務(wù)器壓力大:對于每個請求,服務(wù)器都需要重新渲染頁面,這可能導(dǎo)致服務(wù)器壓力過大。
  • 開發(fā)限制:SSR要求開發(fā)者在編寫Vue組件時,需要考慮到服務(wù)器端和客戶端環(huán)境的差異,不能過度依賴客戶端環(huán)境。
  • 調(diào)試?yán)щy:SSR的調(diào)試過程相對復(fù)雜,需要同時考慮到服務(wù)器端和客戶端的日志和錯誤信息。

示例(使用React的服務(wù)器端渲染):v2r28資訊網(wǎng)——每日最新資訊28at.com

// 服務(wù)器端代碼(Node.js)const React = require('react');const ReactDOMServer = require('react-dom/server');const MyComponent = require('./MyComponent').default; // 假設(shè)MyComponent是上面定義的React組件// 渲染組件為HTML字符串const html = ReactDOMServer.renderToString(<MyComponent />);// 將HTML字符串發(fā)送給客戶端// ...(這里省略了HTTP服務(wù)器和響應(yīng)發(fā)送的代碼)

三、SSG(靜態(tài)站點生成)

介紹:v2r28資訊網(wǎng)——每日最新資訊28at.com

SSG(Static Site Generation)是一種在構(gòu)建時生成靜態(tài)HTML頁面的技術(shù)。在這種模式下,開發(fā)者會編寫一些模板文件和數(shù)據(jù)文件,然后使用構(gòu)建工具(如Hugo、Gatsby等)將這些文件轉(zhuǎn)換為靜態(tài)的HTML頁面。這些頁面可以直接部署到服務(wù)器上,而不需要服務(wù)器進行實時渲染。v2r28資訊網(wǎng)——每日最新資訊28at.com

優(yōu)點:v2r28資訊網(wǎng)——每日最新資訊28at.com

  • 性能卓越:由于頁面是靜態(tài)的,因此無需等待服務(wù)器渲染,直接由瀏覽器加載顯示,具有出色的性能。
  • 安全性高:由于服務(wù)器只提供靜態(tài)文件,因此降低了遭受攻擊的風(fēng)險。
  • 適合內(nèi)容型網(wǎng)站:對于內(nèi)容更新不頻繁的內(nèi)容型網(wǎng)站(如博客、文檔網(wǎng)站等),SSG是一個很好的選擇。

缺點:v2r28資訊網(wǎng)——每日最新資訊28at.com

  • 動態(tài)性受限:由于頁面是靜態(tài)的,因此難以實現(xiàn)復(fù)雜的動態(tài)交互效果。
  • 構(gòu)建時間長:對于大型站點,構(gòu)建時間可能會比較長。
  • 不適合頻繁更新:對于需要頻繁更新數(shù)據(jù)的網(wǎng)站,SSG可能不太適合,因為每次更新都需要重新構(gòu)建并部署整個網(wǎng)站。

示例(使用Nunjucks模板引擎):模板文件(index.njk):v2r28資訊網(wǎng)——每日最新資訊28at.com

<!DOCTYPE html><html><head>  <title>My Static Site</title></head><body>  <h1>{{ message }}</h1></body></html>

構(gòu)建腳本(Node.js):v2r28資訊網(wǎng)——每日最新資訊28at.com

const nunjucks = require('nunjucks');const fs = require('fs');// 配置Nunjucks模板引擎nunjucks.configure('views', { autoescape: true });// 渲染模板const res = nunjucks.render('index.njk', { message: 'Hello, SSG!' });// 將渲染結(jié)果寫入HTML文件fs.writeFileSync('dist/index.html', res);// 現(xiàn)在你可以將生成的`dist/index.html`部署到服務(wù)器上

總結(jié)

CSR、SSR和SSG各有優(yōu)缺點,適用于不同的場景和需求。在選擇使用哪種技術(shù)時,需要根據(jù)項目的具體需求來權(quán)衡利弊。v2r28資訊網(wǎng)——每日最新資訊28at.com

例如,對于需要豐富交互效果和實時數(shù)據(jù)的場景,可以選擇CSR;對于需要優(yōu)化首屏加載速度和SEO效果的場景,可以選擇SSR;而對于內(nèi)容更新不頻繁、對性能要求高的場景,可以選擇SSG。同時,也可以結(jié)合使用多種技術(shù)來實現(xiàn)更好的用戶體驗和性能優(yōu)化。v2r28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-88569-0.html一文搞懂:什么是SSR、SSG、CSR?前端渲染技術(shù)全解析

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 三分鐘入門Helm工具

下一篇: Python 中十個令人驚嘆的字符串操作技巧

標(biāo)簽:
  • 熱門焦點
  • 一加Ace2 Pro官宣:普及16G內(nèi)存 引領(lǐng)24G

    一加官方今天繼續(xù)為本月發(fā)布的新機一加Ace2 Pro帶來預(yù)熱,公布了內(nèi)存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引領(lǐng),還有呢?#一加Ace2Pro#,2023 年 8 月,敬請期待。”同時
  • 分享六款相見恨晚的PPT模版網(wǎng)站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS網(wǎng)站旨在為全球Office用戶提供豐富的高品質(zhì)原創(chuàng)PPT模板、實用文檔、數(shù)據(jù)圖表及個性化定制服務(wù)。優(yōu)點:OfficePLUS是微軟官方網(wǎng)站,囊括PPT模板、Word模
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個人開發(fā)仿造稿定設(shè)計的圖片編輯器到現(xiàn)在,不知不覺已過去一年時間了,期間我經(jīng)歷了裁員失業(yè)、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日
  • 小紅書1周漲粉49W+,我總結(jié)了小白可以用的N條漲粉筆記

    作者:黃河懂運營一條性教育視頻,被54萬人&ldquo;珍藏&rdquo;是什么體驗?最近,情感博主@公主是用鮮花做的,火了!僅僅憑借一條視頻,光小紅書就有超過128萬人,為她瘋狂點贊!更瘋狂的是,這
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來源:價值研究所 作者:Hernanderz&ldquo;難道就因為自己的一個產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運營上的問題,選擇逃避了嗎?&rdquo;這一番話,出自百合網(wǎng)聯(lián)合創(chuàng)
  • Temu起訴SHEIN,跨境電商戰(zhàn)事升級

    來源 | 伯虎財經(jīng)(bohuFN)作者 | 陳平安日前據(jù)外媒報道,拼多多旗下跨境電商平臺Temu正對競爭對手SHEIN提起新訴訟,訴狀稱Shein&ldquo;利用市場支配力量強迫服裝廠商與之簽訂獨家
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業(yè) 作者/李彥編輯/木魚拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁&ldquo;充值中心&rdquo;入口上線了本機生活界面。壹覽商業(yè)發(fā)現(xiàn),該界面目前主要
  • 2納米決戰(zhàn)2025

    集微網(wǎng)報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領(lǐng)先地位的英特爾,甚至初成立不久的新
  • 世界人工智能大會國際日開幕式活動在世博展覽館開啟

    30日上午,世界人工智能大會國際日開幕式活動在世博展覽館開啟,聚集國際城市代表、重量級院士專家、國際創(chuàng)新企業(yè)代表,共同打造人工智能交流平臺。上海市副市
Top 主站蜘蛛池模板: 汶上县| 旬阳县| 准格尔旗| 江永县| 昆山市| 邢台县| 永修县| 寿宁县| 通化市| 平湖市| 长宁区| 延寿县| 巴塘县| 临泉县| 马尔康县| 铁力市| 洛阳市| 渭南市| 万载县| 遂宁市| 五寨县| 内乡县| 温泉县| 宁蒗| 大田县| 沁阳市| 正安县| 松潘县| 长海县| 满洲里市| 磐石市| 榆林市| 广南县| 眉山市| 上饶县| 福泉市| 北票市| 孟州市| 临夏市| 定南县| 礼泉县|