欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:前端框架 常見微前端方案

柚子快報邀請碼778899分享:前端框架 常見微前端方案

http://yzkb.51969.com/

轉(zhuǎn)載請注明出處,點擊此處 查看更多精彩內(nèi)容

iframe

iframe 是 HTML 的內(nèi)聯(lián)框架元素,表示嵌套的 Browsing Context,它能夠?qū)⒘硪粋€ HTML 頁面嵌入到當前頁面中,每個嵌入的 Browsing Context 都有自己的會話歷史記錄和 DOM 樹。

每個瀏覽上下文都擁有完整的文檔環(huán)境,因此頁面上每個 iframe 都需要增加內(nèi)存和其它計算資源,雖然理論上來說能夠在代碼中寫出來無限多的 iframe,但是這么做可能會導致某些性能問題。

優(yōu)點

Web 應用隔離的非常完美,無論是 JavaScript、CSS、DOM 都完全隔離開來。非常簡單,使用沒有任何心智負擔。

缺點

DOM 結(jié)構(gòu)不共享,彈窗只能在 iframe 內(nèi)部展示,無法覆蓋全局。路由狀態(tài)丟失,刷新頁面會導致 iframe 的 url 狀態(tài)丟失、后退前進按鈕無法使用。性能差,每次子應用進入都是一次瀏覽器上下文重建、資源重新加載的過程。應用之間通信困難,全局上下文完全隔離,內(nèi)存變量不共享,無法訪問非同源的 window 對象的幾乎所有屬性,跨域通信僅可通過 window.postMessage() 來實現(xiàn)。

路由轉(zhuǎn)發(fā)

路由分發(fā)式微前端,即通過路由將不同的業(yè)務(wù)分發(fā)到不同的獨立前端應用上。最常用的方案是通過 HTTP 服務(wù)的反向代理(如 Nginx)將不同頁面的請求分發(fā)到不同的服務(wù)上。

優(yōu)點

實現(xiàn)簡單。維護、開發(fā)成本低。不需要對現(xiàn)有應用進行改造。

缺點

用戶體驗不好,每次切換應用時,瀏覽器都需要重新加載頁面。子應用之間的通信比較困難。多個子應用無法并存。子應用切換時需要重新登錄。

動態(tài)加載模塊

創(chuàng)建一個基座應用,允許子應用單獨部署。為了實現(xiàn)這一點,創(chuàng)建一個 manifest 文件,記錄上線的子應用及版本信息,當子應用部署更新時修改 manifest 文件,基座應用通過 manifest 檢查更新子應用資源。

改變每個子應用加載的 JavaScript 文件有很多的方法:

Web 服務(wù)器:在你的 Web 服務(wù)器為每個子應用的正確版本創(chuàng)建一個動態(tài)腳本。使用模塊加載 例如 SystemJS 可以在瀏覽器通過動態(tài) urls 下載并執(zhí)行 JavaScript 代碼。

npm

每個子應用在一個單獨的代碼倉庫中,每次更新時發(fā)布一個新版本到 npm,創(chuàng)建一個基座應用,通過 npm 安裝每個子應用。

優(yōu)點

npm 安裝對于開發(fā)中更熟悉,易于搭建。

缺點

子應用發(fā)生變更時,基座應用需要重新安裝、重新構(gòu)建和重新部署。無法動態(tài)安裝、卸載子應用。

Web Component

Web Component 是一套不同的技術(shù),允許你創(chuàng)建可重用的定制元素(它們的功能封裝在你的代碼之外)并且在你的 Web 應用中使用它們。

Web Components 由三項主要技術(shù)組成,它們可以一起使用來創(chuàng)建封裝功能的定制元素,可以在你喜歡的任何地方重用,不必擔心代碼沖突。

Custom Element(自定義元素) 一組 JavaScript API,允許您定義 Custom Elements 及其行為,然后可以在您的用戶界面中按照需要使用它們。Shadow DOM(影子 DOM) 一組 JavaScript API,用于將封裝的“影子”DOM 樹附加到元素(與主文檔 DOM 分開呈現(xiàn))并控制其關(guān)聯(lián)的功能。通過這種方式,您可以保持元素的功能私有,這樣它們就可以被腳本化和樣式化,而不用擔心與文檔的其他部分發(fā)生沖突。HTML Template(HTML 模板)