成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

邊緣渲染是如何提高前端性能的?

開發 前端
ESR適應于對頁面渲染性能較高的場景,借助邊緣計算在SSR的基礎上進一步優化首屏繪制的時間,降低用戶頁面的白屏等待時間。

前端渲染的發展

在講ESR(Edge Side Rendering,邊緣渲染)如何提速渲染之前,我們有必要先了解一下前端渲染的發展歷史以及前端各項性能指標優化是如何被提上議程的,之后我們再反觀ESR的出現就會發現也是水到渠成。

其實整個前端渲染方式也是隨著前端技術的演進而不斷革新的,大致可以分為如下歷程。

SSR(Server Side Rendering)時代(JSP、PHP)

最早期的前端渲染(2005年Ajax推出之前)都是和后端混寫的,比如JSP、PHP等寫法。但是前后端寫法雜糅在一起導致開發效率低下,比如改個樣式還要重新編譯一遍,并且頁面也會寫的很重。

CSR(Client Side Rendering)時代

后面有了Ajax技術之后,再加上通過CDN緩存靜態資源之后,前端SPA + CSR渲染有了飛躍式的發展,這種模式前端處理所有邏輯、內容填充和路由,數據加載部分通過Ajax從后端獲取,因此很好的解決了前后端分工開發的問題。其具體請求時間線可參見下圖。

但是由于請求是全異步的,其一是對SEO不利,其二是需要HTML + JS處理數據拼接才能在前端完成渲染,其首屏白屏時間會較長,特別在一些低端機型上體驗更是堪憂。

SSR時代(Node)

再后來隨著Node引領的全棧技術的發展,前端又回到了當初的SSR路上,只不過這次的回歸是一次螺旋式的上升。首先是前后端全是JS語法,大部分代碼都是可復用的,其次是SEO場景友好,服務端渲染好后直接返回最終的HTML,減少了白屏等待時間,過多異步請求的導致的性能問題也可下放到服務端解決,也能有效避免多次的數據獲取、內容填充,瀏覽器只綁定相關的JS邏輯、事件即可。其具體請求時間線可參見下圖。

ESR(Edge Side Rendering)時代

后面隨著邊緣計算的發展,由于CDN節點距離用戶更近,有更短網絡延時的優勢,我們可以將頁面進行動靜拆分,將靜態內容緩存在CDN先快速返回給用戶,然后在CDN節點上發起動態內容的請求,之后將動態內容與靜態部分以流的形式進行拼接,從而進一步提高了用戶的首屏加載時間,尤其在邊緣地區或者弱網環境也有能擁有很好的用戶體驗,此外還減少原先SSR服務器壓力。

原理和優勢

剛才也提到了,ESR就是借助邊緣計算能力,將返回的內容進行靜態+動態部分拆分并以流的形式返回。靜態部分依托CDN的緩存能力,優先返回給用戶,隨后在CDN節點上繼續發起動態數據請求,并拼接在靜態部分之后,繼續流式返回。因此,其優勢也是顯而易見:

  • TTFB(Time To First Byte)很短:因為靜態內容在CDN緩存住了,會很快的返回給用戶。
  • FP(First Paint)很短:因為在靜態內容返回后,已經可以開始HTML的解析以及 JS, CSS的下載和執行。
  • FMP(First Meaningful Paint)很短:因為動態內容的請求是在CDN發起,相比于客戶端與服務端直連,請求減少了TCP建連和網絡傳輸開銷,而且由于動態部分是以chunked形式流式返回,FMP就會很短,比如搜索網站的第一個搜索結果就會首先繪制出來。

應用場景舉例

場景一:將SSR服務直接部署在邊緣節點,中心服務提供數據接口

直接將SSR服務搬到邊緣部署,具體流程如下圖。

場景二:邊緣服務讀取緩存的靜態部分HTML,中心服務提供動態HTML

SSR服務部署在中心,邊緣流式返回HTML內容(利用HTTP Transfer-Encoding: chunked 分塊傳輸機制),需要分離靜態與動態部分,具體流程如下圖。

  • 邊緣服務:請求靜態HTML并返回,同時請求中心SSR服務,獲取動態內容并返回
  • SSR服務:去除靜態HTML,把動態部分返回給邊緣服務

舉例

以一個Demo網站為例,頂部導航可以視為靜態部分緩存在邊緣CDN,下面的卡片是動態部分回源到中心服務獲取數據:

通過Demo對比,可發現ESR比SSR的有著明顯優勢,其靜態頂導首先繪出,后面動態數據也比SSR的返回要快。

此外,結合如下的埋點統計,ESR的優勢更加得以印證。

結語和展望

技術實現: ESR適應于對頁面渲染性能較高的場景,借助邊緣計算在SSR的基礎上進一步優化首屏繪制的時間,降低用戶頁面的白屏等待時間;

部署方式: 目前實現方式主要借助于邊緣faas部署ESR服務,具有快速訪問、彈性擴縮容、低運維成本等優點;

后期提供ER(邊緣js運行時)部署,用戶無需關心邊緣節點,只需專注于代碼本身,修改代碼上傳發布即可,相對于node服務,js運行時能夠提供更高的運行效率。

技術展望: ESR目前是在SSR基礎上,結合邊緣計算進行的性能提升,將來我們將結合ER與CDN能力,在Jamstack方向進行更多的探索,有興趣的同學敬請期待!

責任編輯:趙寧寧 來源: code秘密花園
相關推薦

2020-05-27 09:41:10

前端性能邊緣計算

2015-03-18 09:59:14

CSSCSS提高渲染性

2025-05-06 07:25:00

Chunk分片大數據Flink

2011-04-11 14:56:09

Oracle性能

2021-07-14 14:06:06

CSS前端瀏覽器

2019-01-14 08:06:37

JavaScript

2023-04-10 11:18:38

前端性能優化

2015-10-14 17:27:18

性能

2019-09-24 15:41:10

Web前端傳輸

2017-02-05 17:33:59

前端優化Web性能

2015-10-10 11:00:05

RubyRails性能

2015-11-16 10:21:28

Java中鎖性能

2020-10-16 09:00:12

前端開發技術

2020-10-16 10:40:39

前端性能可視化

2015-09-23 11:27:14

數據中心存儲性能

2022-09-27 15:13:38

邊緣計算

2011-10-14 10:37:54

ASP.NET

2023-08-21 19:24:34

DevOpsKubernetes性能

2023-08-14 16:30:46

2021-11-02 10:01:35

XXR 渲染前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级高清 | 一级a性色生活片久久毛片 一级特黄a大片 | 免费一区在线 | 精品国产精品国产偷麻豆 | 日韩在线视频免费观看 | 日韩高清中文字幕 | 日本一区二区三区四区 | 久久一区二区精品 | 亚洲精品一区av在线播放 | 色呦呦在线 | 国产一二三视频在线观看 | 亚洲成人黄色 | 国产成人精品久久二区二区91 | 亚洲成人二区 | 国产一区二区三区在线免费观看 | 在线免费国产 | 日韩精品成人网 | 精品日韩欧美一区二区 | 日韩国产欧美视频 | 亚洲视频免费一区 | 亚洲免费视频网址 | 黄视频免费观看 | www.日日操 | 欧美亚洲一区二区三区 | 国产三区视频在线观看 | 日韩成人免费在线视频 | 亚洲协和影视 | 国产色视频网站 | 欧美精品一区三区 | 久久久久黄| 免费观看国产视频在线 | 久久国产精品色av免费观看 | 成人精品一区亚洲午夜久久久 | 国产精品久久久久久久7777 | 国产精品99久久久久久宅男 | 国产乱码精品一区二区三区五月婷 | 亚洲一二三区不卡 | 91精品观看 | 国产在线一区观看 | 国产精品视频一二三区 | 久久一区二区三区四区五区 |