德国一级毛片,综合网婷婷,中国美女一级毛片,欧美区一区二,婷婷色六月,欧美日韩在线播放成人,久热国产在线视频

    五分鐘了解 Web 技術(shù)發(fā)展史!

    來(lái)源: 互聯(lián)網(wǎng) 作者: 佚名

    摘要: 1991年8月,第一個(gè)靜態(tài)頁(yè)面誕生了,這是由Tim Berners-Lee發(fā)布的,想要告訴人們什么是萬(wàn)維網(wǎng)。從靜態(tài)頁(yè)面到Ajax技術(shù),從Server Side Render到React Server Components,歷史的車輪滾滾向前,一個(gè)又一個(gè)技術(shù)誕生和沉寂。

      1991年8月,第一個(gè)靜態(tài)頁(yè)面誕生了,這是由Tim Berners-Lee發(fā)布的,想要告訴人們什么是萬(wàn)維網(wǎng)。從靜態(tài)頁(yè)面到Ajax技術(shù),從Server Side Render到React Server Components,歷史的車輪滾滾向前,一個(gè)又一個(gè)技術(shù)誕生和沉寂。

      前言

      1994年,萬(wàn)維網(wǎng)聯(lián)盟(W3C,World Wide Web Consortium)成立,超文本標(biāo)記語(yǔ)言(HTML,Hyper Text Markup Language)正式確立為網(wǎng)頁(yè)標(biāo)準(zhǔn)語(yǔ)言,我們的旅途從此開始。

      本文將沿著時(shí)間線,從“發(fā)現(xiàn)問(wèn)題-解決問(wèn)題”的角度,帶領(lǐng)大家了解 Web 技術(shù)發(fā)展的關(guān)鍵歷程,了解典型技術(shù)的誕生以及技術(shù)更迭的緣由,思考技術(shù)發(fā)展的原因。

      Tim Berners-Lee

      Tim Berners-Lee(蒂姆·伯納斯·李),英國(guó)科學(xué)家,萬(wàn)維網(wǎng)之父,于1989年在歐洲核子研究組織(CERN)正式提出萬(wàn)維網(wǎng)的設(shè)想。該網(wǎng)絡(luò)最初是為了滿足世界各地大學(xué)和研究所的科學(xué)家之間對(duì)自動(dòng)信息共享的需求而設(shè)計(jì)和開發(fā)的,這也是為什么HTML的頂層聲明是 document,標(biāo)簽名、文檔對(duì)象模型的名稱也是由此而來(lái)。

      1990年12月,他開發(fā)出了世界上第一個(gè)網(wǎng)頁(yè)瀏覽器。1993年4月30日,歐洲核子研究組織將萬(wàn)維網(wǎng)軟件置于公共領(lǐng)域,把萬(wàn)維網(wǎng)推廣到全世界,讓萬(wàn)維網(wǎng)科技獲得迅速的發(fā)展,深深改變了人類的生活面貌。

      他創(chuàng)造了超文本標(biāo)記語(yǔ)言(HTML),并創(chuàng)建了歷史上第一個(gè)網(wǎng)站。當(dāng)然,現(xiàn)在只剩下了由 CERN 恢復(fù)的網(wǎng)站副本:info.cern.ch.

      靜態(tài)網(wǎng)頁(yè)時(shí)代

      早期的靜態(tài)網(wǎng)頁(yè),只有最基本的單欄布局,也僅有HTML所支持的標(biāo)簽,后來(lái)為了豐富網(wǎng)頁(yè)的內(nèi)容,標(biāo)簽誕生了。

      這一階段,Web服務(wù)器基本上只是一個(gè)靜態(tài)資源服務(wù)器,每當(dāng)客戶端瀏覽器發(fā)來(lái)訪問(wèn)請(qǐng)求,它都來(lái)者不拒的建立連接,查找URL指向的靜態(tài)頁(yè)面,再返回給客戶端。

      隨著網(wǎng)頁(yè)的飛速發(fā)展,人們發(fā)現(xiàn)要人工實(shí)現(xiàn)所有信息的編寫是非常困難的,而且非常耗時(shí)。

      設(shè)想一下,假如一個(gè)頁(yè)面有兩塊區(qū)域展示的內(nèi)容是互相獨(dú)立的,那么你需要涵蓋所有的可能,需要編寫的頁(yè)面數(shù)量是兩塊區(qū)域的內(nèi)容數(shù)量的乘積!

      此外,靜態(tài)網(wǎng)站只能夠根據(jù)用戶的請(qǐng)求返回指向的網(wǎng)頁(yè),除了進(jìn)行超鏈接跳轉(zhuǎn),沒辦法實(shí)現(xiàn)任何交互。

      此時(shí),人們想要

      網(wǎng)頁(yè)能夠動(dòng)態(tài)顯示

      直接使用數(shù)據(jù)庫(kù)里的數(shù)據(jù)

      網(wǎng)頁(yè)實(shí)現(xiàn)一些用戶交互

      讓頁(yè)面更美觀

      JavaScript的誕生

      1994年,網(wǎng)景公司發(fā)布了 Navigator 瀏覽器,但他們急需一種網(wǎng)頁(yè)腳本語(yǔ)言,以使瀏覽器可以與網(wǎng)頁(yè)互動(dòng)。

      1995年,網(wǎng)景公司的 Brendan Eich 迫于公司的壓力,只花了十天就設(shè)計(jì)了 JS 的最初版本,并命名為 Mocha。后來(lái)網(wǎng)景公司為了蹭 Java 的熱度,把 JS 最終改名為 JavaScript。但實(shí)際情況是,網(wǎng)景公司和Sun公司結(jié)成聯(lián)盟,才更名為 JavaScript。

      從此網(wǎng)頁(yè)有了一些簡(jiǎn)單的用戶交互,比如表單驗(yàn)證;也有了一些JS為基礎(chǔ)的動(dòng)效,如走馬燈。

      但是讓網(wǎng)頁(yè)真正開始進(jìn)入動(dòng)態(tài)網(wǎng)頁(yè)時(shí)代的卻是以 PHP 為代表的后端網(wǎng)站技術(shù)。

      擴(kuò)展資料:第一次瀏覽器大戰(zhàn)

      在網(wǎng)景公司推出JavaScript的時(shí)候,微軟以JS為基礎(chǔ),編寫了JScript和VBScript作為瀏覽器語(yǔ)言,并在 1995 年的 8 月推出了 IE 1.0。

      由于微軟在系統(tǒng)里捆綁瀏覽器,而 90% 的人都在使用 Windows 操作系統(tǒng),大量用戶被動(dòng)地選擇了IE。面對(duì)微軟快速搶占瀏覽器份額,網(wǎng)景公司無(wú)奈之下只能快速將 JavaScript 向 ECMA 提交標(biāo)準(zhǔn),制定了 ECMAScript 標(biāo)準(zhǔn)。

      在這段時(shí)間,還發(fā)生過(guò)一件趣事,IE 4.0 發(fā)布當(dāng)天 Netscape 的員工們發(fā)現(xiàn)公司的草坪上出現(xiàn)了一個(gè)大大的 IE 圖標(biāo),這明顯是一個(gè)挑釁的舉動(dòng)。作為回應(yīng),Netscape 把自己的吉祥物 “Mozilla” 放在 IE 的圖標(biāo)上,并掛上胸牌,寫著 “Netscape 72,Microsoft 18”——在當(dāng)時(shí), IE 的市場(chǎng)份額確實(shí)不如 Netscape Navigator。

      但這無(wú)法解決份額的問(wèn)題,網(wǎng)景公司最終在第一次瀏覽器大戰(zhàn)中落敗,于1998年,被美國(guó)在線(AOL)以42億美元收購(gòu)。

      在1998年網(wǎng)景公司被收購(gòu)前,網(wǎng)景公司公開了 Navigator 源代碼,想通過(guò)廣大程序員的參與重新獲得市場(chǎng)份額。Navigator 改名為 Mozilla。這也是火狐瀏覽器的由來(lái),也是第二次瀏覽器大戰(zhàn)的伏筆。

      CSS

      1994年,Hkon Wium Lie 最初提出了 CSS 的想法。1996年12月,W3C 推出了 CSS 規(guī)范的第一版本。

      美觀是所有人的追求。HTML誕生以來(lái),網(wǎng)頁(yè)基本上就是一個(gè)簡(jiǎn)陋的富文本容器。由于缺少布局和美化手段,早期網(wǎng)頁(yè)流行用table標(biāo)簽進(jìn)行布局。為了解決網(wǎng)頁(yè)“丑”的問(wèn)題,Hkon Wium Lie 和 Bert Bos 共同起草了 CSS 提案,同期的 W3C 也對(duì)這個(gè)很感興趣。

      早期網(wǎng)頁(yè)外觀

      早期的 CSS 存在多種版本,在PSL96版本你甚至可以在里面使用邏輯表達(dá)式。但因?yàn)樗菀讛U(kuò)展,瀏覽器廠商那么多,會(huì)變得很難統(tǒng)一,最終被放棄。

      在眾多提案中,H?kon W Lie 的 CHSS(Cascading HTML Style Sheets)最早提出了樣式表可疊加的概念。

      行尾的百分比表示這條樣式的權(quán)重,最終將根據(jù)權(quán)重計(jì)算最終值。圖中將會(huì)計(jì)算 30pt * 40% + 20pt * 60% 作為h2字體大小的最終值。

      為了解決 CSS 兼容性的問(wèn)題,網(wǎng)景公司甚至還將 CSS 用 JS 來(lái)編寫。

      CSS 從誕生開始就伴隨著大量的bug,不同瀏覽器表現(xiàn)不同坑害了無(wú)數(shù)的程序員。今天我們能用上相對(duì)靠譜的 css,不得不說(shuō)這是一個(gè)奇跡。

      動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)

      1995年,Rasmus Lerdof 創(chuàng)造的 PHP 開始活躍在各大網(wǎng)站,它讓 Web 可以訪問(wèn)數(shù)據(jù)庫(kù)了,PHP 實(shí)現(xiàn)了人們渴望的動(dòng)態(tài)網(wǎng)頁(yè)。

      這里的動(dòng)態(tài)網(wǎng)頁(yè)不是指網(wǎng)頁(yè)動(dòng)效,而是指內(nèi)容的動(dòng)態(tài)展示、豐富的用戶交互。PHP 就像給網(wǎng)絡(luò)世界打開了一扇窗,各種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)(如ASP、JSP)雨后春筍般的冒了出來(lái),萬(wàn)維網(wǎng)也因此開始高速發(fā)展,MVC模式也開始出現(xiàn)在后端網(wǎng)站技術(shù)中。

      動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)解決了以前各種令人無(wú)法呼吸的痛,生活總會(huì)越來(lái)越好的:

      可以用數(shù)據(jù)庫(kù)作為基礎(chǔ)來(lái)展示網(wǎng)頁(yè)內(nèi)容

      可以實(shí)現(xiàn)表單和一些簡(jiǎn)單交互

      再也不用編寫一大堆靜態(tài)頁(yè)面了

      PHP等動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)的原理,大體上都是根據(jù)客戶端的請(qǐng)求,從數(shù)據(jù)庫(kù)里獲取相對(duì)應(yīng)的數(shù)據(jù),然后塞到網(wǎng)頁(yè)里去,返回給客戶端一個(gè)填充好內(nèi)容的網(wǎng)頁(yè)。這個(gè)階段也是前后端耦合的。

      網(wǎng)頁(yè)開發(fā)流程

      而當(dāng)一些基礎(chǔ)的需求被滿足之后,動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)帶來(lái)的不足也漸漸暴露出來(lái)

      網(wǎng)頁(yè)總是刷新。用戶名密碼校驗(yàn)需要刷新以展示錯(cuò)誤提示;因下拉選擇器選擇不同而展示的內(nèi)容需要刷新才能展示;每次數(shù)據(jù)交互必然會(huì)刷新一次頁(yè)面。

      網(wǎng)頁(yè)和后端邏輯混合。相信老前端們都有過(guò)這樣的經(jīng)歷:開發(fā)完HTML后,會(huì)把頁(yè)面發(fā)給后端修改,加上數(shù)據(jù)注入邏輯;聯(lián)調(diào)或者debug的時(shí)候兩個(gè)人坐在一塊看,查問(wèn)題的效率很低。

      有大量重復(fù)代碼無(wú)法復(fù)用。舉一個(gè)典型的例子,論壇。很多時(shí)候只有內(nèi)容有變化,菜單、側(cè)邊欄等幾乎不會(huì)有改變,但每次請(qǐng)求的時(shí)候還是得再將整個(gè)網(wǎng)頁(yè)傳輸一遍。不僅頁(yè)面會(huì)刷新,速度慢,還挺耗流量(這個(gè)年代上網(wǎng)也是一種奢侈)。

      然后AJAX站了出來(lái)。

      AJAX

      AJAX,Async JavaScript And XML,于1998年開始初步應(yīng)用,2005年開始普及。AJAX的廣泛使用,標(biāo)志著Web2.0時(shí)代的開啟。這同時(shí)也是各大瀏覽器爭(zhēng)鋒的時(shí)代。

      現(xiàn)在,我們可以通過(guò)AJAX來(lái)動(dòng)態(tài)獲取數(shù)據(jù),利用DOM操作動(dòng)態(tài)更新網(wǎng)頁(yè)內(nèi)容了。來(lái)看看加入了AJAX的網(wǎng)頁(yè)是怎么工作的:

      這個(gè)時(shí)候前端路由還沒有興起,大多數(shù)情況下還是后端返回一整個(gè)頁(yè)面,部分內(nèi)容通過(guò)AJAX進(jìn)行獲取。

      隨著智能手機(jī)的出現(xiàn),APP開始萌芽。相比起網(wǎng)頁(yè),APP編寫好之后只需要數(shù)據(jù)接口就能工作;而網(wǎng)頁(yè)不僅需要后端寫業(yè)務(wù)邏輯,控制跳轉(zhuǎn),還要寫一部分接口用于AJAX請(qǐng)求。

      這個(gè)階段前端能做的事情還是很少,還背負(fù)著“切圖仔”的綽號(hào)。隨著HTML5草案的提出,前端能做的交互越來(lái)越多,程序員們急需解決以下問(wèn)題:

      后端業(yè)務(wù)代碼和數(shù)據(jù)接口混合,還得兼容APP的接口(很多企業(yè)既有APP又有網(wǎng)站)

      前端的代碼復(fù)雜度急劇增加

      能不能讓前端也像APP一樣,只需要請(qǐng)求數(shù)據(jù)接口即可展現(xiàn)內(nèi)容呢?

      擴(kuò)展資料:第二次瀏覽器大戰(zhàn)

      2004年 Firefox 發(fā)布,拉開了第二次瀏覽器大戰(zhàn)的序幕。同期市面上誕生的各種新興瀏覽器,如Safari、Chrome等,也加入了戰(zhàn)爭(zhēng)。

      此前由于 XP 系統(tǒng)實(shí)在過(guò)于火爆,導(dǎo)致 IE 6 無(wú)任何競(jìng)爭(zhēng)對(duì)手,微軟甚至解散了瀏覽器的大部分員工,只留下幾個(gè)人象征性地維護(hù)順便修補(bǔ)一下 bug。這讓開發(fā)人員非常痛苦。

      此時(shí) Firefox 以優(yōu)越于IE的性能和非常友好的編程工具,迅速將那些被 IE6 搞得焦頭爛額的網(wǎng)頁(yè)開發(fā)人員們,從水火之中救出,導(dǎo)致先讓前端工程師成為忠實(shí)的第一批用戶,然后,經(jīng)由這些有經(jīng)驗(yàn)的開發(fā)人員們推廣到了普通的用戶群體。

      基于webkit內(nèi)核的Safari,借助自家產(chǎn)品(iOS、MacOS)的壟斷快速收割移動(dòng)端和mac端市場(chǎng)份額;同樣基于webkit內(nèi)核的Chrome,趁著微軟放松警惕,憑借優(yōu)越于市場(chǎng)上所有瀏覽器的性能,如同中國(guó)歷史上的成吉思汗一樣大殺四方,快速擴(kuò)展市場(chǎng)份額。

      微軟知道,自己已經(jīng)失去了最初能稱霸的機(jī)會(huì),這次它不想失去,IE再次開始迭代,各大瀏覽器廠商又開始不顧標(biāo)準(zhǔn),迭代再次開始,為了統(tǒng)一化標(biāo)準(zhǔn),W3C開發(fā)了HTML5,但是遲遲得不到微軟的認(rèn)可。在其他瀏覽器紛紛支持HTML5后,微軟發(fā)現(xiàn),自己又成了孤家寡人,份額不斷縮水。

      2016年,Chrome瀏覽器份額超越IE,第二次瀏覽器大戰(zhàn)結(jié)束。

      瀏覽器大戰(zhàn)極大的推動(dòng)了技術(shù)進(jìn)步,正是 Google 研發(fā)出的 V8 引擎極大的提升了 JS 的運(yùn)行效率,NodeJS 才有機(jī)會(huì)誕生,前端才能走向全棧。JS其實(shí)沒有你想象的那么慢。

      SPA

      2008年HTML5草案提出,各大瀏覽器開啟良性競(jìng)爭(zhēng),爭(zhēng)先實(shí)現(xiàn)HTML5功能。由于HTML5帶來(lái)前端代碼復(fù)雜度的增加,前端為了尋求良好的可維護(hù)性和可復(fù)用性,也不得不參考后端MVC進(jìn)行了設(shè)計(jì)和拆分,后來(lái)出現(xiàn)了三大前端框架:Vue(2014)、React(2010)、AngularJS(2009)。

      單頁(yè)應(yīng)用返回一個(gè)空白的HTML,并通過(guò)JS腳本進(jìn)行動(dòng)態(tài)生成內(nèi)容,從此和頁(yè)面刷新說(shuō)拜拜。

      后端不再負(fù)責(zé)模板渲染,前端和APP開始對(duì)等,后端的API也可以通用化了。前后端終于得以分離。(PS: 最終目標(biāo)是成為后端)

      但SPA因?yàn)榉祷氐氖强誋TML,所有JS也被打包為一個(gè)文件,需要在一開始就加載完所有的資源,

      請(qǐng)求網(wǎng)頁(yè)后 白屏?xí)r間比傳統(tǒng)網(wǎng)頁(yè)要長(zhǎng)

      爬蟲爬到的是空白頁(yè)面, 沒辦法做SEO

      在業(yè)務(wù)復(fù)雜的情況下, 請(qǐng)求文件很大,渲染非常慢

      這使得前端不得不拆分過(guò)于龐大的單頁(yè)應(yīng)用,出現(xiàn)了框架的多頁(yè)面概念,也出現(xiàn)了多種解決方案。

      很多網(wǎng)頁(yè)首次加載的時(shí)候其實(shí)并不需要太多的東西,比如論壇首頁(yè)與貼子詳情頁(yè),完全可以將其拆開,用戶在新打開的頁(yè)面閱讀反而體驗(yàn)更好(多頁(yè)應(yīng)用)。

      又比如管理后臺(tái),可以在頁(yè)面框架內(nèi),將每個(gè)菜單對(duì)應(yīng)的管理頁(yè)拆出來(lái)動(dòng)態(tài)加載(import)。

      Server Side Render

      Server Side Render,服務(wù)端渲染,簡(jiǎn)稱SSR,又稱服務(wù)端同構(gòu)、直出,一般使用NodeJS實(shí)現(xiàn)。

      這里的服務(wù)端渲染和以前的不一樣,SSR會(huì)利用已經(jīng)“脫水”的首屏數(shù)據(jù)來(lái)渲染首屏頁(yè)面返回給客戶端,到了瀏覽器再注入瀏覽器事件,并且保留單頁(yè)應(yīng)用的能力,對(duì)SEO非常友好。但學(xué)習(xí)成本高,限制較多。

      讓我們看看傳統(tǒng)SPA和加入了SSR的SPA在請(qǐng)求上的區(qū)別:

      傳統(tǒng)SPA可以更快的返回頁(yè)面,請(qǐng)求響應(yīng)時(shí)間更短;加載JS后才開始渲染,白屏?xí)r間更長(zhǎng),loading結(jié)束后用戶感知到的相對(duì)可交互時(shí)間更早。

      而SSR在接到瀏覽器請(qǐng)求時(shí),先從后端拉取首屏數(shù)據(jù)渲染在頁(yè)面內(nèi)才返回,請(qǐng)求響應(yīng)時(shí)間更長(zhǎng);因?yàn)楣?jié)約了一段瀏覽器請(qǐng)求首屏數(shù)據(jù)的時(shí)間,白屏?xí)r間更短。由于JS異步加載,用戶感知的相對(duì)可交互時(shí)間變晚。但體驗(yàn)上SSR一般更好。

      在極端情況下,用戶眼中傳統(tǒng)SPA會(huì)一直顯示loading,使用了SSR的頁(yè)面則會(huì)出現(xiàn)“點(diǎn)不動(dòng)”的情況。

      大多數(shù)時(shí)候SSR體驗(yàn)會(huì)更佳,因?yàn)榉?wù)端承擔(dān)了大部分渲染工作,這也導(dǎo)致服務(wù)端負(fù)載變高。但在業(yè)務(wù)復(fù)雜的情況下,SSR首屏請(qǐng)求的接口數(shù)很多,導(dǎo)致返回HTML變慢。

      歸根結(jié)底,SSR不能很好的應(yīng)付業(yè)務(wù)復(fù)雜的情況,首屏要加載的東西還是太多了。所以我們要怎樣讓用戶感知到的白屏?xí)r間變短呢?

      減小加載體積

      減少接口請(qǐng)求數(shù)

      PWA緩存

      分塊渲染

      …

      IMWEB的企鵝輔導(dǎo)落地了 SSR + PWA 之后,達(dá)到了幾乎秒開的程度。

      NodeJS

      說(shuō)完了 SSR,必須說(shuō)一下 NodeJS。2010年 NodeJS 正式立項(xiàng)到現(xiàn)在已經(jīng)11個(gè)年頭了,NodeJS 的誕生來(lái)自于 Ryan Dahl(下圖) 的靈感。他想以非阻塞的方式做所有事情,用完全異步方式可以處理非常多的請(qǐng)求(高并發(fā))。

      NodeJS 的出現(xiàn)讓前端向全棧的發(fā)展邁出了重大的一步。很多公司開始用 NodeJS 搞 BFF(backend for frontend),我們也開始把 Controller 層放到 NodeJS 來(lái)處理,后端只負(fù)責(zé)基礎(chǔ)業(yè)務(wù)數(shù)據(jù)。也就是現(xiàn)在的三層架構(gòu):

      這種架構(gòu)在跨端的時(shí)候具有良好的適配性,我們可以根據(jù)業(yè)務(wù)需求,為不同端設(shè)計(jì)不同的 Controller 和 View,而后臺(tái)可以不做變更。這種架構(gòu)省去了很多溝通成本,前端專注頁(yè)面的展示,后端專注業(yè)務(wù)邏輯。

      當(dāng)然,NodeJS 還可以對(duì)后端數(shù)據(jù)進(jìn)行預(yù)處理,前端根據(jù)自己的需要自己設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),頁(yè)面開發(fā)與接口調(diào)試形成閉環(huán),還為后端分擔(dān)了壓力。

      擴(kuò)展資料:第三次瀏覽器大戰(zhàn)

      智能手機(jī)的飛速發(fā)展,這張圖表現(xiàn)的淋漓盡致。第三次瀏覽器大戰(zhàn)是爭(zhēng)奪移動(dòng)端市場(chǎng)份額的一戰(zhàn),也是當(dāng)下正在進(jìn)行的一戰(zhàn)。

      Benedict Evans: “Mobile is eating the world.”(移動(dòng)設(shè)備正在蠶食世界) “Mobile remakes the Internet.”(移動(dòng)設(shè)備正在重構(gòu)Internet)

      而未來(lái),瀏覽器真正的對(duì)手不再是瀏覽器,而是小程序這樣結(jié)合了APP和網(wǎng)頁(yè)優(yōu)點(diǎn)的新興技術(shù)。

      未來(lái)

      早在2009年,F(xiàn)acebook的工程師就開發(fā)了bigPipe,讓Facebook頁(yè)面打開速度提高了兩倍。bigPipe使用 分塊渲染 的思想,將網(wǎng)頁(yè)的渲染變成了一小塊一小塊的,服務(wù)端渲染好一塊頁(yè)面就發(fā)送給客戶端。他們直接把木桶拆了,打破了短板效應(yīng)。

      服務(wù)端渲染 VS 流式分塊渲染

      時(shí)隔11年,也就是2020年12月,React 團(tuán)隊(duì)提出了 React Server Components,算是一個(gè)可擴(kuò)展的前后端融合方案。其理念和 bigPipe 類似,把組件放在服務(wù)端渲染,節(jié)省了從瀏覽器進(jìn)行數(shù)據(jù)請(qǐng)求的開支,一些運(yùn)行時(shí)也可以不用放到瀏覽器,減小了包大?。ㄈ?markdown 在服務(wù)端渲染好了,也就不再需要把工具庫(kù)發(fā)送給瀏覽器了)。React Server Components 的引入,也同步做到了自動(dòng)的 Code Split。

      React Server Components 原理

      不同的是 React Server Components 返回的不是 HTML,而是帶有結(jié)構(gòu)和數(shù)據(jù)的自定義類JSON數(shù)據(jù)。

      這種結(jié)構(gòu),是對(duì)服務(wù)端渲染的核心(結(jié)構(gòu)+數(shù)據(jù))進(jìn)行抽象,結(jié)合 React 的工作方式(如Suspense),平緩的從服務(wù)端過(guò)渡到了客戶端,維持了組件狀態(tài),并且可以更自由的拼裝服務(wù)器組件和客戶端組件。

      客戶端組件和服務(wù)端組件混用

      關(guān)于拆分這條思路,讓我想到微前端,雖然現(xiàn)在微前端還有很多問(wèn)題,但微應(yīng)用即服務(wù)也不乏為一條解決之道。未來(lái)前端或許會(huì)往“小而美”的方向發(fā)展,甚至形成一個(gè)以服務(wù)端組件為單位的包管理器,網(wǎng)頁(yè)打包大小會(huì)越來(lái)越小,更多的組件是從網(wǎng)絡(luò)上直接獲取。

      此外,我也很期待 Web Components 的發(fā)展,有了原生的支持,0kb runtime也不是不可能了。合久必分分久必合,現(xiàn)存很多前端框架也可以得到統(tǒng)一了。當(dāng)然現(xiàn)在 Web Components 想要投入使用,首先離不開瀏覽器的支持,而且必須有一個(gè)平緩的過(guò)渡,此外兼容性也是一個(gè)大問(wèn)題(最后還是苦了程序員們)。

      結(jié)語(yǔ)

      從 JavaScript 的誕生一路走來(lái),從“發(fā)現(xiàn)問(wèn)題-解決問(wèn)題”的角度,我們看到了技術(shù)發(fā)展的原因和必然性。2021年的今天,Web APP 仍然距離原生 APP 體驗(yàn)有一定的差距?;蛟S以后會(huì)出現(xiàn)一個(gè)小程序桌面APP,小程序能夠得到統(tǒng)一;或許會(huì)在 PWA 的道路上越走越遠(yuǎn);又或者瀏覽器開放更多原生系統(tǒng) API,利用各種加載方式,再模擬 APP 的各種體驗(yàn),達(dá)到近似 APP 的效果。

      每個(gè)時(shí)代都誕生了許多的技術(shù),大浪淘沙,留下的卻也只是只存在于這個(gè)時(shí)代的王者。技術(shù)總是不斷的更迭,重要的不是慌慌張張的追趕技術(shù)的腳步,而是去思考技術(shù)為什么這么如此演變,思考這樣的演變方式的利與弊。如果是你,又會(huì)怎么解決當(dāng)代技術(shù)的問(wèn)題呢?

    關(guān)鍵詞:

    科技史

    審核:yj149 編輯:yj149

    免責(zé)聲明

    1、凡本網(wǎng)注明“來(lái)源:***”的作品,均是轉(zhuǎn)載自其他平臺(tái),本網(wǎng)贏家財(cái)富網(wǎng) m.xfjyyzc.com 轉(zhuǎn)載文章為個(gè)人學(xué)習(xí)、研究或者欣賞傳播信息之目的,并不意味著贊同其觀點(diǎn)或其內(nèi)容的真實(shí)性已得到證實(shí)。全部作品僅代表作者本人的觀點(diǎn),不代表本網(wǎng)站贏家財(cái)富網(wǎng)的觀點(diǎn)、看法及立場(chǎng),文責(zé)作者自負(fù)。如因作品內(nèi)容、版權(quán)和其他問(wèn)題請(qǐng)與本站管理員聯(lián)系,請(qǐng)?jiān)?0日內(nèi)進(jìn)行,我們收到通知后會(huì)在3個(gè)工作日內(nèi)及時(shí)進(jìn)行處理。

    2.本網(wǎng)站刊載的各類文章、廣告、訪問(wèn)者在本網(wǎng)站發(fā)表的觀點(diǎn),以鏈接形式推薦的其他網(wǎng)站內(nèi)容,僅為提供更多信息供用戶參考使用或?yàn)閷W(xué)習(xí)交流的方便(本網(wǎng)有權(quán)刪除)。所提供的數(shù)據(jù)僅供參考,使用者務(wù)請(qǐng)核實(shí),風(fēng)險(xiǎn)自負(fù)。

    版權(quán)屬于贏家財(cái)富網(wǎng),轉(zhuǎn)載請(qǐng)注明出處
    查看更多
    • 內(nèi)參
    • 股票
    • 贏家觀點(diǎn)
    • 娛樂(lè)
    • 原創(chuàng)

    TOPCon電池概念逆勢(shì)拉升,概念龍頭股奧特維漲幅11.85%領(lǐng)漲

    目前TOPCon電池概念逆勢(shì)拉升,收1005.18點(diǎn),漲幅達(dá)1.77%,根據(jù)贏家財(cái)富網(wǎng)數(shù)據(jù)中心跟蹤顯示,TOPCon電池概念下成分股:奧特維大幅上漲11.85%、,主力資金凈流入4506.72萬(wàn)...

    移動(dòng)支付概念逆勢(shì)走高,概念龍頭股航天信息漲幅9.98%領(lǐng)漲

    當(dāng)天移動(dòng)支付概念逆勢(shì)走強(qiáng),收1672.63點(diǎn),上漲1.32%,根據(jù)贏家財(cái)富網(wǎng)數(shù)據(jù)中心跟蹤顯示,移動(dòng)支付概念下成分股:航天信息大漲9.98%、,主力資金凈流入5.55億元、亞聯(lián)發(fā)展...

    杭州亞運(yùn)會(huì)概念逆勢(shì)上漲,杭蕭鋼構(gòu)以漲幅10.1%領(lǐng)漲杭州亞運(yùn)會(huì)概念

    1月8日杭州亞運(yùn)會(huì)概念逆勢(shì)上漲,收1614.0點(diǎn),上漲1.23%,根據(jù)贏家財(cái)富網(wǎng)數(shù)據(jù)中心跟蹤顯示,杭州亞運(yùn)會(huì)概念下成分股:杭蕭鋼構(gòu)大幅上漲10.1%、,主力資金凈流入8315.71萬(wàn)...

    工業(yè)母機(jī)概念逆勢(shì)走強(qiáng),概念龍頭股維宏股份漲幅10.83%領(lǐng)漲

    今日工業(yè)母機(jī)概念逆勢(shì)拉升,收2267.23點(diǎn),上漲1.61%,根據(jù)贏家財(cái)富網(wǎng)數(shù)據(jù)中心跟蹤顯示,工業(yè)母機(jī)概念下成分股:維宏股份大漲10.83%、,主力資金凈流入2183.8萬(wàn)元、華東數(shù)...

    早知道:2026年1月8號(hào)熱點(diǎn)題材

    上證指數(shù)目前處于贏家江恩多頭主線形態(tài),日內(nèi)重心上移,延續(xù)短期江恩底分型后的上攻,依據(jù)贏家江恩價(jià)格工具得出:當(dāng)前支撐位:4082.0629點(diǎn),當(dāng)前阻力位:4097.22點(diǎn)、4142...

    早知道:2026年1月7號(hào)熱點(diǎn)題材

    上證指數(shù)目前處于贏家江恩多頭主線形態(tài),日內(nèi)重心上移,延續(xù)短期江恩底分型后的上攻,依據(jù)贏家江恩價(jià)格工具得出:當(dāng)前支撐位:4005.84點(diǎn),當(dāng)前阻力位:4077.2067點(diǎn)、4097...

    股票中多少手算是大單?多少手算是大單的確定標(biāo)準(zhǔn)

    股票中多少手是什么意思?一只股票幾股一般意味著幾百股,因?yàn)橐皇止善笔且粋€(gè)交易單位的股票,一手是成交單位,一手是成交單位。一般情況下,我們a股市場(chǎng)有100股,不足1...

    有人說(shuō)養(yǎng)殖蝎子賣不了?那是你沒有真的理解“蝎子養(yǎng)殖”

    有人說(shuō)養(yǎng)殖蝎子賣不了?這個(gè)只是個(gè)別的說(shuō)法,那是你沒有真的理解“蝎子養(yǎng)殖”。其實(shí)蝎子是一種毒性非常強(qiáng)的動(dòng)物,蝎子也有很高的藥用價(jià)值,所以蝎子也被稱為特殊的養(yǎng)殖項(xiàng)...

    科技史上的今天

  1. 打開一扇通往古代科技的大門

    打開一扇通往古代科技的大門

    中科院自然科學(xué)史研究所推出“中國(guó)古代重要科技發(fā)明創(chuàng)造88項(xiàng)”,并由此帶來(lái)了一套《中國(guó)古代重大科技創(chuàng)新》(第一輯),共10冊(cè),為我們展示了珍貴罕見的古代科技圖片、科技文物,用通俗故事、生動(dòng)案例等方式,帶我們一起走進(jìn)古代科技史[詳情]

  2. 汉川市| 奈曼旗| 盐池县| 新泰市| 中山市| 垦利县| 富顺县| 怀远县| 昆山市| 南涧| 彰化市| 游戏| 玉山县| 霸州市| 墨玉县| 津市市| 儋州市| 内丘县| 张家口市| 黔江区| 凤冈县| 漠河县| 莱州市| 河北省| 方正县| 乌拉特后旗| 荣昌县| 聂拉木县| 通化县| 营口市| 三江| 元阳县| 苍南县| 民勤县| 通榆县| 郧西县| 尼勒克县| 洛川县| 山西省| 萍乡市| 灵山县|