色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

3202年了,為啥SSR并沒有預想中的流行?

OSC開源社區 ? 來源:OSC開源社區 ? 2023-10-29 16:15 ? 次閱讀

有研究發現,網站加載時間每增加一秒,用戶便會流失 10%。為提高頁面的秒開率,各路人馬不斷探索著優化策略,僅僅在瀏覽器領域下的優化已經滿足不了極致的要求了,大家開始往服務端方向不斷探索,并一度讓【服務端渲染】這一古早的概念 “翻紅”,且炒得火熱。

服務端渲染簡稱 SSR,全稱 Server Side Rendering,顧名思義是將渲染的工作放在 Server 端進行。這種辦法不僅有利于首屏渲染,提高 SPA 應用的首屏響應速度,還方便搜索引擎抓取,有利于 SEO 優化。不過,到 2023 年了,SSR 并沒有預想中的流行。

有評論認為,大部分用 SSR 的原因是為了服務 SEO,但現在搜索引擎已經跟上發展步伐了,對于用框架寫成的 SPA 支持也不錯,所以 SSR 必要性沒那么大了。還有人覺得 SSR 就是偽需求,業務邏輯和控制器分離好了加載一樣快。

但也有評論認為,現在仍然有大量的用戶因為網絡環境或設備情況,在訪問 Web 頁面的時候無法達到很好的體驗,如果要提升這部分用戶的體驗,那么 SSR 就是一種不可或缺的方式。

對此,真實的情況是怎樣的?實際應用中,阻礙 SSR 成為 Web 主流開發模式的原因是什么?這種方法放到今天的環境下過時了嗎?什么樣的業務場景更適合 SSR 呢?對此,開源中國邀請了兩位前端大佬,來聽聽他們的看法。

劉奎,社區昵稱 kuitos 。支付寶體驗技術部前端工程師,開源微前端方案 qiankun 作者,目前在螞蟻負責 Web 基建研發相關工作。

劉勇,社區昵稱天豬,某大廠 Node.js Infra 負責人,EggJS / CNPM 核心開發者。

SSR,并不是偽需求

Q1:以你的經驗,什么類型的項目和場景更常用 SSR ?能舉些例子嗎?

劉奎:對首屏性能非常敏感,或者對 SEO 有強訴求的這類網站會更常用 SSR,如:

電商平臺:更快的首屏渲染可以讓用戶更快的看到商品信息,提升購買轉化率

營銷活動頁:秒開能有效提升營銷活動的業務效果

門戶網站:內容型站點通常對 SEO 有著比較強的訴求

Q2:從你的實際體驗出發,你覺得 SSR 相比于 CSR(Client-side rendering)模式,優勢在哪?

劉奎:從我個人體驗來看,最大的優勢還是在首屏體驗上,SSR 模式下 HTML 加載過程中用戶就能看到有效的頁面內容,這個基本是 CSR 很難做到的。

Q3:如今搜索引擎已經支持渲染了,你認為還有必要因為 SEO 的原因使用 SSR 嗎?

劉奎:由于眾所周知的原因,國內的搜索引擎對 SPA 類型的應用支持的并不好,如果希望自己的網站能更好的被爬蟲索引到,基本上還是需要使用 SSR(或者 SSR 的變種)方案了。

Q4:有人認為 SSR 是偽需求,要改善首屏渲染性能的話,后端服務的業務邏輯和控制器分離,控制器分視圖控制器和接口控制器,調用相同的業務邏輯。第一次打開頁面,前端 JavaScript 加載頁面渲染的數據,用戶交互時再請求接口獲取數據。這個方案比性能著急的 SSR 強多了。你怎么評價?

劉奎:這個方案本質還是 CSR,無法解決 CSR 方案原生的問題:即用戶必須等到 JS 下載完成 -》 發起接口請求 -》 JS 獲取數據渲染頁面之后,才能看到有效內容的問題。在越苛刻的網絡環境及用戶設備條件下,這個問題會越明顯。

劉勇:根據團隊的基建成熟度和業務場景做技術選型,這 2 個方案沒有絕對的優劣,也不是絕對的割裂,它們是可以通過前端工程化結合成一個方案的。

SSR,想紅有點難 Q5:以當前的形勢來看,SSR 并沒能成為 Web 主流的開發模式,你覺得這其中的阻礙有哪些?

劉奎:我覺得主要有這幾類原因:

技術復雜度:SSR 需要在服務器端進行渲染,并與前端框架進行集成,對開發人員來說需要掌握更多的技術知識。

SSR 帶來的額外的開發及維護成本:相對于 CSR,SSR 方案需要前端額外去關注服務端相關的開發及運維,比如如何寫出更高性能的服務端渲染邏輯,如何處理潛在的內存泄露、變量污染等隔離問題,如何做 SSR 的容災(在 SSR 失敗時 fallback 到 CSR)等,這些都需要團隊有額外的資源及時間投入。

場景匹配度:國內大量的服務是通過小程序、APP 這類載體進行分發的,純 Web 技術棧的產品相對較少,這點與國外的場景有著非常大的不同。

劉勇:首先,SSR 是需要服務器資源成本的,在降本提效的大背景下,會需要結合 Serverless 或邊緣計算等一些基建才能找到平衡點。同時既然是服務端,就有一定的運維能力要求,對前端團隊的技術積累有一定的要求。

其次,框架的封裝和維護如果做的不好的話,業務同學寫 SSR 很容易弄出內存泄露問題,這是非常常見的。而且目前的前端框架還沒有針對 SSR 場景進行優化,如果只是首屏展示快,但緊接著要下載超大的 Bundle 文件,從而用戶可交互時間太慢,就得不償失了。

最后,演進路徑問題,譬如螞蟻那邊,他們當年就已經跟把離線包的上下游基建都做的很完善了,APP 側、網絡側都有兄弟團隊配合一起打磨。這種模式會有一些缺陷,如離線包太多時的業務競爭問題,但就首屏性能這一點上,SSR 不一定比它好多少,這時候讓他們切換到 SSR 就會有不小的阻力。

Q6:有評論認為 SSR 開發和維護成本太高了,轉而投向了 CSR 的懷抱。CSR 能否取得跟 SSR 一樣的效果呢?有什么具體的操作方案嗎?

劉勇:從首屏性能的關鍵點看,CSR 如果不做一定的優化的話,至少 3 次串行的 HTTP 請求,首屏時間肯定比不過 SSR(互操作時間就不一定)。

不過相應的解決方案也挺多的,如 ServiceWorker、離線包等等方式。

劉奎:單從首屏渲染速度這一點來看,CSR 想取得 SSR 類似的效果,可以采取以下方案優化:

首屏頁面靜態資源優化:通過代碼切割 & 懶加載等手段,確保首屏需要的 JS/CSS 是最小化的版本,并通過內聯等方式直接打到 HTML 中,減少首屏渲染需要的網絡請求;

緩存和預加載:利用客戶端的緩存及預加載等機制,提升二次訪問速度;

使用更輕量的框架:選擇更輕量的前端框架,從而減少首屏的 JS 體積,提升加載速度;

優化關鍵接口響應速度:優化首屏需要的關鍵內容的接口響應速度,確保前端能更快的呈現頁面。

但如果還有額外的 SEO 訴求,單純的 CSR 可能很難達到一樣的效果。

Q7:如果將原有的應用直接切換到 SSR 一體化應用中來,成本會有多大?對開發團隊會有哪些挑戰呢?

劉奎:成本及挑戰有以下幾點:

應用改造成本:大部分應用都是無法直接在服務端環境運行的,基本都需要做一定程度的改造,比如消除首屏渲染代碼中對 window、location 等瀏覽器特有 API 的依賴,構建出用于服務端運行的 JS 等。

SSR 函數研發及運維挑戰:同時具備豐富的前端及服務端開發經驗的團隊在大部分公司都是非常少見的,如前面提到的,SSR 帶來的額外的服務端的開發及運維挑戰,這個也是需要前端團隊考慮的。

也需,SSR+CSR 會是未來新方向? Q8:現在一些網站采用了首屏服務器端渲染,即對于用戶最開始打開的那個頁面采用的是服務器端渲染,這樣就保證了渲染速度,而其他的頁面采用客戶端渲染,這樣就完成了前后端分離。你覺得這會是融合了兩者優勢的更完美的方案嗎?

劉奎:是的,這也是目前社區內的最佳實踐,能很好的保留 SSR 及 SPA 應用的優點。

劉勇:這其實很多年前就有相關實踐了,譬如當年云龍在 UC 的 Scrat Pagelet 就是類似的實踐,甚至當時做的是后續頁面也通過服務端局部渲染,按需更新前端頁面的階段。

這種方式在業界也有看到一些更近一步的實踐:開發者很自然的去寫邏輯,不用管什么分離不分離的事,在前端工程化那一層自動拆分,SSG + SSR + CSR,一些可以靜態構建的直接在構建階段處理了,一些可以在服務端渲染的服務端,剩下的非剛需的組件直接前端渲染掉。這些都能做,前提是前端工程化這塊的基建是否足夠完善,研發模式是否足夠收斂。

最后提醒下,我所了解大部份 SSR 實踐,一般也會在前面再擋一個短時效的 CDN,然后通過 CSR 做千人千面的修飾和后續業務邏輯。

Q9:你如何看待 SSR 的未來發展?是會隨著硬件的升級逐步淘汰,還是會隨著技術的更新越發流行?

劉勇:優化思路是不會過時的,也許某一天我們現在熟悉的 SSR 的編程界面變了,譬如當年的 SSR 是用 nunjucks、ejs 之類的模版,現在是 react、vue。未來也會有新的技術出現,但它很有可能也屬于 SSR 的一種實踐模式。

劉奎:按照我的經驗來看,很多時候新的技術方案大都會嘗試更多的壓榨硬件機能,從而獲得更好的交互體驗,所以任何時期都會存在相對「低端」的設備,這個應該是解決不掉的(笑

在我看來,SSR 最主要的落地成本還是在服務端的研發及運維上,這個對于大部分公司的前端團隊都是較大的負擔,進而因為 ROI 不高導致 SSR 落地困難。但是,隨著 Serverless 的發展,出現了許多幾乎 “零運維” 的 Serverless 方案,可以極大地降低前端團隊的運維成本。同時,從社區的趨勢來看,近年來流行的各種前端框架都在擁抱 Edge 和 SSR,例如 Next.js、remix-run、Qwik、Astro、Fresh 等。同時,React 等庫也推出了性能表現更佳的流式 SSR 能力。通過這些框架技術的集成和迭代,不僅可以顯著降低前端工程師開發 SSR 應用的研發成本,還能進一步提升傳統 SSR 的性能效果。

從目前的趨勢來看,我覺得 SSR 會隨著研發及運維成本的降低,變得越發的流行。

Q10:結合你的項目經驗,你會如何評價 SSR 這一模式呢?

劉勇:從前端的歷史演進看,是 SSR → CSR → SSR,粗一看似乎是在開歷史倒車,但實際不然。

舉個例子,當年前端的 HTML + CSS + JS 都是 all-in-one 的單文件方式,因為那時候前端沒有編譯能力只能寫在一起;隨著前端工程化的演進,開發期拆成多文件方式進行組織,構建時自動處理成為了主流;再進一步又出現了類似 Vue SFC 這樣的單文件方式,這是開倒車么?其實不是,而是隨著基建的完善,用戶編程界面是可以更貼近直覺的,性能和部署之類的事交給工具去做即可。

因此,我認為 SSR 模式是有真實場景的,但在目前這個階段,我覺得它還有很多切實的性能問題和工程化問題需要解決才能更好的落地。

劉奎:CSR 雖然也能獲得比較好的首屏體驗,但受限于用戶設備的機能,存在著明顯的性能天花板。而 SSR 則能更好的借助邊緣計算(ESR)、流式渲染等服務端能力,有效的提升性能天花板,在大部分時候會是 Web 應用提升首屏性能的一個有效武器。

當然每個項目和團隊都有不同的特點和目標,在選擇開發模式時需要綜合考慮各種因素。

對此,你怎么看?你的項目采取了 SSR 還是 CSR 呢?快來評論區說說你的體驗吧~

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SSR
    SSR
    +關注

    關注

    0

    文章

    83

    瀏覽量

    17781
  • 編譯
    +關注

    關注

    0

    文章

    659

    瀏覽量

    32890

原文標題:3202年了,為啥SSR并沒有預想中的流行?

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    編寫好ADS1148讀寫數據的驅動時候,發現SPI總線上的數據并沒有被讀回來,是什么原因呢?

    在編寫好ADS1148 讀寫數據的驅動時候,發現SPI總線上的數據并沒有被讀回來,從示波器上,可以發現SPI的read命令是沒有問題的,可是SDO上面沒數據,后來進一步查看是ADS1148的數據轉換完成狀態引腳ready信號時鐘為高電平?大家有遇到過么,可能是什么原因呢?
    發表于 12-06 07:13

    使用ADS5281時,ADCLKN/P,CLKP/N的輸出是高電平并沒有1X,6X的正弦信號,為什么?

    在使用ADS5281時,輸入電壓正常,Vcm輸出電壓為1.48V,REFT和REFB輸入如下: 但是ADCLKN/P,CLKP/N的輸出是高電平,并沒有1X,6X的正弦信號,非常期待解答,感謝!
    發表于 11-14 07:58

    進行ads1299短接噪聲測試時,增益更改后短接噪聲并沒有發生變化,為什么?

    在進行ads1299短接噪聲測試時,ads1299的增益更改,短接噪聲并沒有發生變化,而且在使用內部方波測試時,方波不對成,在增益為1時,短接噪聲為0.35mV左右,這是為什么呢
    發表于 11-14 07:46

    打開PurePath Stdio軟件后,component一欄里有些模塊并沒有顯示出來,為什么?

    打開軟件后,發現component一欄里有些模塊并沒有顯示出來,例如TI AEC。但是經檢查,這些模塊其實已經從目錄“ComponentLibrary”解壓到“ComponentCache”
    發表于 10-21 07:11

    TPA2005為什么實際測量輸出波形根輸入一樣,并沒有放大阿?

    我選用的TPA2005D1芯片,輸入電容3300pF,輸入電阻150K。輸出33uH(160mA)電感,1uF電容。 為什么實際測量輸出波形根輸入一樣,并沒有放大阿? 輸入波形:1k,1V的音頻信號。
    發表于 10-12 08:46

    固態繼電器(SSR):分步概述

    固態繼電器(SSR)已成為現代電氣和電子控制系統的重要組成部分。它們通過提供更快的切換速度、更長的使用壽命和更好的可靠性,為傳統機電繼電器(EMR)提供更好的替代方案。本文將逐步探討SSR
    的頭像 發表于 09-27 16:08 ?454次閱讀
    固態繼電器(<b class='flag-5'>SSR</b>):分步概述

    THS7530增益控制電壓加到0.9V并沒有放大到40多dB,為什么?

    按照數據手冊上FIG.21的接法,輸入100mV VPP以下的信號,增益控制電壓加到0.9V并沒有放大到40多dB,只放大到700mV VPP;下圖是TINA里面的仿真模型,為什么增益控制電壓
    發表于 09-06 08:18

    為什么INA188的GBW并沒有1Mhz?

    請問下,為什么INA188的GBW并沒有1Mhz, 但是在官方推薦的應用(TIDA-01063)卻可以適用于20Mhz的傳感器的檢測?
    發表于 08-02 10:39

    單獨使用AFE031芯片并沒有任何輸出怎么解決?

    你好,在使用AFE031芯片與非C2000系列芯片連接時,按照C2000Wareboostxl_afe031_f28379d_dacmode示例初始化完成后,使用SPI任意向AFE031芯片發送一個數據,示波器
    發表于 07-30 06:48

    編譯運行ESP8266_RTOS_SDK-master,發現程序并沒有正確執行,為什么?

    ,eagle.irom0text.bin---->0x20000燒寫到相應地址,程序運行后,發現并沒有正確執行,請問是否燒寫地址錯誤,或者是配置FLASH錯誤
    發表于 07-12 08:21

    靜態庫定義的INIT_DEVICE_EXPORT函數并沒有被系統調用,為什么?

    1,將一段代碼編譯成靜態庫 2,主工程鏈接這個靜態庫 3,靜態庫里的函數并沒有被主工程調用 4,靜態庫定義一些 INIT_DEVICE_EXPORT 函數 問題: 靜態庫定義的
    發表于 07-04 06:49

    STM32 G473DMA在TIM1 trgo_2產生updata事件觸發時result寄存器有結果但不能賦值,為啥

    STM32 G473DMA在TIM1 trgo_2產生updata事件觸發時result寄存器能刷星結果,但將result賦值給另一個變量時,在Watch窗口里并沒有看到變量的變化,為啥
    發表于 03-14 08:19

    在進行ad9626的配置后,測試DCO并沒有時鐘的輸出的原因?

    在進行ad9626的配置后,測試DCO并沒有時鐘的輸出,然后進行寄存器ID數據的讀出,讀出了ID地址的數據,然后再次進行了配置寄存器,DCO還是沒有時鐘的輸出。
    發表于 02-27 07:25

    capsense在deepsleep時定時300ms喚醒掃描,發現并沒有在每次喚醒都能檢測到觸摸,一般都要接近1S左右才有反應的原因?

    capsense在deepsleep時定時300ms喚醒掃描,發現并沒有在每次喚醒都能檢測到觸摸,一般都要接近1S左右才有反應,是我哪里沒處理好嗎?希望有做過類似的capsense低功耗處理朋友能幫忙看下哪里出現問題,非常感謝! ?
    發表于 02-21 07:22

    在Sense Tuner并沒有找到相關的I2C設置,請問真么設置才能將UART變為I2C?

    在Sense Tuner并沒有找到相關的I2C設置,請問真么設置才能將UART變為I2C?
    發表于 02-02 08:59
    主站蜘蛛池模板: 久久精品国产欧美| 我不卡影院手机在线观看| 亚洲日韩国产精品乱-久| 刘梓晨啪啪啪| 久久成人午夜电影mp4| 又硬又粗又大一区二区三区视频| 老熟人老女人国产老太| 被送到黑人性奴俱乐部| 午夜小视频免费观看| 久久中文字幕人妻AV熟女| 波多结衣一区二区三区| 亚洲国产精品无码AV久久久| 麻豆啊传媒app黄版破解免费| 成人bt下载| 一个人HD在线观看免费高清视频| 免费国产久久啪在线| 91蜜桃视频| 手机国产视频福利| 久久精品视频免费| 草草色| 亚洲精品天堂在线| 蜜桃TV成人网站免费打开| 国产成人亚洲精品无广告| 孕妇bbwbbwbbwbbw超清| 禁漫H天堂免费A漫| 亚洲人成影院在线播放| 欧美 日韩 无码 有码 在线 | 伊人久久综合网站| 日本69xx 老师| 精品一区二区三区免费毛片| 处女座历史名人| 2020国产成人精品免费视频| 双性将军粗壮H灌满怀孕| 老女人与小伙子露脸对白| 国产国产成人人免费影院| 97国产视频| 亚洲视频免费观看| 色婷婷亚洲五月| 国家产午夜精品无人区| 办公室丝袜老师在线观看| 伊人久久中文|