Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
<div class="ceshi">
<p>1</p><p>2</p><p>3</p>
</div>
<script>
setInterval(function(){addLine();},2000)
function addLine() {
var html=$(".ceshi p:nth-child(1)").html();
$(".ceshi p:nth-child(1)").remove()
$('.ceshi p:last-child').after("<p>"+html+"</p>");
}
</script>
用到的方法有:.
remove()刪除
after()最后的位置追加
家好,我叫Echa哥。
微前端已經是一個非常成熟的領域了,但開發者不管采用哪個現有方案,在適配成本、樣式隔離、運行性能、頁面白屏、子應用通信、子應用保活、多應用激活、vite 框架支持、應用共享等用戶核心訴求都或存在問題,或無法提供支持。本文提供一種基于 iframe 的全新的微前端方案,完善地解決了這些核心訴求。
目前較成熟的微前方案有 qiankun、micro-app、EMP 方案,下面分別分析這三個微前端方案:
qiankun 方案是基于 single-spa 的微前端方案。
特點
不足
micro-app 是基于 webcomponent + qiankun sandbox 的微前端方案。
特點
不足
EMP 方案是基于 webpack 5 module federation 的微前端方案。
特點
不足
qiankun 方案對 single-spa 微前端方案做了較大的提升同時也遺留下來了不少問題長時間沒有解決;
micro-app 方案對 qiankun 方案做了較多提升但基于 qiankun 的沙箱也相應會繼承其存在的問題;
EMP 方案基于 webpack 5 聯邦編譯則約束了其使用范圍;
目前的微前端方案在用戶的核心訴求上都沒有很好的滿足,有很大的優化提升空間。
無界微前端方案基于 webcomponent 容器 + iframe 沙箱,能夠完善地解決適配成本、樣式隔離、運行性能、頁面白屏、子應用通信、子應用保活、多應用激活、vite 框架支持、應用共享等用戶的核心訴求。
文檔地址,demo 地址:https://wujie-micro.github.io/demo-main-vue/home,git 地址:https://github.com/Tencent/wujie
下面就成本、速度、隔離、功能等多個方面進行闡述。
無界微前端的成本非常低,主要體現在主應用的使用成本、子應用的適配成本兩個方面。
主應用使用無界不需要學習額外的知識,無界提供基于 vue 封裝的 wujie-vue 和基于 react 封裝的 wujie-react,用戶可以當初普通組件一樣加載子應用,以 wujie-vue 舉例:
<WujieVue
width="100%"
height="100%"
name="xxx"
url="xxx"
:sync="true"
:fiber="true"
:degrade="false"
:fetch="fetch"
:props="props"
:plugins="plugins"
:beforeLoad="beforeLoad"
:beforeMount="beforeMount"
:afterMount="afterMount"
:beforeUnmount="beforeUnmount"
:afterUnmount="afterUnmount"
></WujieVue>
子應用加載和普通 vue 組件加載并無二致,所有配置都收斂到組件的屬性上。
子應用首先需要做支持跨域請求改造,這個是所有微前端框架運行的前提,除此之外子應用可以不做任何改造就可以在無界框架中運行,不過此時運行的方式是重建模式。
子應用在無界中會根據是否保活、是否做了生命周期適配進入不同的運行模式:
其中保活模式、單例模式、重建模式適用于不同的業務場景,就算復雜點的單例模式用戶也只是需要做一點簡單的生命周期改造工作,可以說子應用適配成本極低。
無界微前端非常快,主要體現在首屏打開快、運行速度快兩個方面。
目前大部分微前端只能做到靜態資源預加載,但是就算子應用所有資源都預加載完畢,等到子應用打開時頁面仍然有不短的白屏時間,這部分白屏時間主要是子應用 js 的解析和執行。
無界微前端不僅能夠做到靜態資源的預加載,還可以做到子應用的預執行。
預執行會阻塞主應用的執行線程,所以無界提供 fiber 執行模式,采取類似 react fiber 的方式間斷執行 js,每個 js 文件的執行都包裹在 requestidlecallback 中,每執行一個 js 可以返回響應外部的輸入,但是這個顆粒度是 js 文件,如果子應用單個 js 文件過大,可以通過拆包的方式降低體積達到 fiber 執行模式效益最大化。
子應用的 js 在 iframe 內運行,由于 iframe 是一個天然的 js 運行沙箱,所以無需采用 with (fakewindow) 這種方式來指定子應用的執行上下文,從而避免由于采用 with 語句執行子應用代碼而導致的性能下降,整體的運行性能和原生性能差別不大。
無界微前端實現了 css 沙箱和 js 沙箱的原生隔離,子應用不用擔心污染問題。
無界將子應用的 dom 放置在 webcomponent + shadowdom 的容器中,除了可繼承的 css 屬性外實現了應用之間 css 的原生隔離。
無界將子應用的 js 放置在 iframe(js-iframe)中運行,實現了應用之間 window、document、location、history 的完全解耦和隔離。
無界在底層采用 proxy + Object.defineproperty 的方式將 js-iframe 中對 dom 操作劫持代理到 webcomponent shadowRoot 容器中,開發者無感知也無需關心。
無界微前端的功能非常強大,支持子應用保活、子應用內嵌、多應用激活、去中心化通信、生命周期、插件系統、vite 框架支持、兼容 IE9、應用共享。
當子應用設置為保活模式,切換子應用后仍然可以保持子應用的狀態和路由不會丟失。
無界支持子應用多層嵌套,嵌套的應用和正常應用一致,支持預加載、保活、同步、通信等能力,需要注意的是內嵌的子應用 name 也需要保持唯一性,否則將復用之前渲染出來的應用
無界支持一個頁面同時激活多個子應用并且保持這些子應用路由同步的能力。
無界提供多種通信方式:window.parent 直接通信、props 數據注入、去中心化 EventBus 通信機制:
無界提供完善的生命周期鉤子供主應用調用:
無界提供強大的插件系統,方便用戶在運行時去修改子應用代碼從而避免將適配代碼硬編碼到倉庫中。
無界插件主要能力如下:
無界子應用運行在 iframe 中原生支持 esm 的腳本,而且不用擔心子應用運行的上下文問題,因為子應用讀取的就是 iframe 的 window 上下文,所以無界微前端原生支持 vite 框架。
由于無界采用了 webcomponent + shadowdom + proxy 的方案,在某些低版本瀏覽器上無法運行時,無界微前端會自動降級。
降級方案采用:
自動降級后無界依然可以保證子應用的 css 和 js 原生隔離,但是由于 dom-iframe 的限制,彈窗將只能在子應用內部打開
一個微前端系統可能同時運行多個子應用,不同子應用之間可能存在相同的包依賴,那么這個依賴就會在不同子應用中重復打包、重復執行造成性能和內存的浪費。
無界提供一種工程上的策略結合無界的插件能力,可以有效的解決這個問題(其他微前端框架也可以做到),這里以一個場景舉例:主應用使用到了 ant-design-vue,子應用 A 也使用到了相同版本的 ant-design-vue。
主應用:
1、修改主應用的 index.js,將共享包掛載到主應用的 window 對象上
// index.js
import Antdv from "ant-design-vue";
// 將需要共享的包掛載到主應用全局
window.Antdv=Antdv;
2、加載子應用時注入插件,將主應用的 Antdv 賦值到子應用的 window 對象上
<WujieVue name="A" url="xxxxx" :plugins="[{ jsBeforeLoaders: [{ content: 'window.Antdv=window.parent.Antdv' }] }]">
</WujieVue>
子應用: webpack 設置 externals
module.exports={
externals: {
"ant-design-vue": {
root: "Antdv",
commonjs: "Antdv",
commonjs2: "Antdv",
amd: "Antdv",
},
},
};
如果子應用需要單獨運行可以參考文檔
無界微前端采用 webcomponent + iframe 的來加載子應用,具有成本低、速度快、原生隔離、功能強大等一系列優點,在滿足用戶核心訴求的同時讓使用微前端的體驗就像使用普通組件一樣簡單,極大的降低了使用門檻。
無界已經開源 ,歡迎 star ??????:https://github.com/Tencent/wujie
次的ae 2020 mac版帶來了更多新功能和改進,比如快速創建和編輯形狀、Cinema 4D Lite R21、預覽和播放性能改進、EXR工作流程增強、圖形和文字增強、表情改善、內容感知填充以改進視頻等,after effects 2020中文版的功能更加全面,用戶體驗更佳。
Adobe After Effects 2020 for mac官方介紹
Adobe After Effects簡稱“AE”是Adobe公司推出的一款圖形視頻處理軟件,適用于從事設計和視頻特技的機構,包括電視臺、動畫制作公司、個人后期制作工作室以及多媒體工作室。屬于層類型后期軟件。
Adobe After Effects軟件可以幫助您高效且精確地創建無數種引人注目的動態圖形和震撼人心的視覺效果。利用與其他Adobe軟件無與倫比的緊密集成和高度靈活的2D和3D合成,以及數百種預設的效果和動畫,為您的電影、視頻、DVD和Macromedia Flash作品增添令人耳目一新的效果。
https://mac.orsoon.com/Mac/174607.html
after effects 2020 mac版全新功能
預覽和播放性能改進
此版本的After Effects提供了線程改進,可提供更快,更清晰的預覽播放。您還可以利用新的GPU加速顯示系統核心來獲得設計的準確視圖,而又不會破壞您的創意流程。GPU渲染增強了預覽回放性能,并為您提供了清晰,詳細的項目實時預覽。
增強的EXR工作流程
現在,您可以將分層的EXR文件作為合成文件導入,以加快合成過程。它使您能夠將多個效果應用于合成圖層,而無需先執行復雜的設置過程。您可以單獨處理每個圖層并應用效果,以使渲染在其環境中看起來更自然。改進的性能使處理大型文件的響應速度更快。
- 將時間碼值從合成寫入標頭信息
- 現在,它包括Cryptomatte。
- 直接將alpha寫入EXR文件。
更快的形狀
此版本的After Effects在處理形狀以加快創意迭代時提供了改進的響應能力。通過改進對分組控件的訪問,可以更輕松地導航和管理大量形狀。
- 包含形狀圖層的項目總體上提高了性能。
- 現在,您可以右鍵單擊以對形狀圖層進行分組或取消分組。在“ 時間軸”面板中選擇多個形狀,右鍵單擊并選擇分組/取消分組形狀。另一個選項是在預覽窗口中選擇多個形狀,單擊鼠標右鍵,然后從“ 蒙版和形狀”路徑中使用“分組/取消分組”。
圖形和文字增強
此版本的After Effects具有多個圖形和文本增強功能。
下拉菜單控制效果
作為After Effects遷移創建者,請使用新的“ 下拉菜單控件” 效果將項目中圖層的屬性連接到下拉菜單。在早期版本中,After Effects使您可以將圖層的屬性連接到滑塊和復選框,以在項目中驅動動畫。Mogrt創建者還共享滑塊和復選框作為可編輯控件,以更改Premiere Pro中Mogrt的屬性。
但是,對于更復雜和冗長的動畫,滑塊和復選框可能并不總是很直觀。例如,您必須將一周的7天連接到不同的顏色。您可以使用日期列表創建一個下拉菜單,并使用顏色列表創建另一個菜單,以便在編輯時更容易選擇。您還可以在表達式,運動圖形模板和“主屬性”中引用下拉菜單。通過此菜單,可以輕松一次調整多個設置,并設計模板,這對于Premiere Pro中的編輯人員而言更加容易。
https://mac.orsoon.com/Mac/174607.html
使用表達式編輯文本屬性
現在,您可以使用表達式對項目中的文本屬性進行全局更改。當您處理任何文本表達式和文本時,新表達式可以控制文本樣式和文本本身。例如,您的項目具有主標題和結尾標題,并且您希望始終使用統一的文本樣式。為此,使用表達式將標題鏈接在一起,并立即更新其樣式。單個文本層的參考屬性,可輕松在整個合成中應用更改。這使您可以在After Effects和Mogrts中的多個文本層之間保持字體,大小和樣式同步。
替代文字矩形
- 如果在文本“ 編輯屬性”對話框中為文本控件啟用了“ 備用文本框”后,創建了After Effects Mogrt ,請使用指定的備用層為該文本層確定文本rect。
- 在Premiere Pro中,將此替代文本矩形用于該文本層,紅色懸停矩形是替代文本的大小或位置。在紅色懸停矩形內單擊,將激活該aeText上的文本編輯。
- 后備文本框信息存儲在After Effects Mogrt中,并序列化到After Effects項目。
- 當After Effects計算要在Premiere Pro程序監視器中編輯的文本矩形時,如果已設置,它將使用備用圖層。
表情改善
此版本的After Effects提供了以下表達改進:
表達式編輯器的改進
- 現在,您可以使用新的滾動功能來防止在通過鍵入返回字符調整框大小時滾動調整不正確。
- 如果變量以數字開頭,則防止數字在自動完成列表中匹配。更智能的自動完成功能可避免覆蓋右方括號和引號。
- 現在,您可以縮放Hi-DPI顯示的字體大小。
- 圖形編輯器現在為所有打開的圖形編輯器提交首選項更改。
- 如果啟用語法突出顯示,則UI中的折疊圖標按鈕現在將使用默認和背景色,或行號顏色和背景色。
表達表現的改善
- After Effects現在嘗試檢測在整個合成過程中不會改變的表達式,并且僅計算一次該表達式。加載您喜歡的表達式填充的伴奏并體驗改進的性能。
- 現在,使用posterizeTime(0)的任何表達式對于整個comp僅計算一次,而不是在每個幀上計算一次。
擴展格式和更好的播放支持
新格式支持包括Canon XF-HEVC。處理10位H.265 HD / UHD和HEVC HD / UHD文件時,體驗更好的播放效果。還提供了改進的ProRes解碼性能。此外,還可以使用帶有增量幀的MJPEG和動畫編解碼器文件的新本機支持訪問舊版QuickTime文件。
新的Cineware渲染器和Cinema 4D Lite R21
此版本的After Effects引入了新的Cinema 4D Lite R21。下面列出的是詳細信息:
- 當您安裝After Effects時,After Effects安裝程序會將Maxon Cinema 4D R21文件夾安裝在您常用應用程序位置的磁盤上。
- 此文件夾包括Cinema 4D Lite R21。首次啟動時,您需要按照屏幕上的說明創建一個Maxon用戶帳戶。當您通過Cineware啟動時,也可能會以試用模式啟動完整版的Cinema 4D。
- 需要一個帳戶來啟動Cinema 4D,但不需要使用Cineware或Cinema 4D 3D渲染器在After Effects中進行渲染。
內容感知填充以改進視頻
借助新的性能改進并減少了內存使用,可以更快,更有效地從視頻中刪除不需要的對象。
其他增強
- 系統兼容性報告 - After Effects檢測到并提醒您有關計算機上使用的特定硬件和較舊的硬件驅動程序的任何已知問題。如果您收到問題警報,但您認為它無效,請提交錯誤,以便我們直接檢查兼容性問題。
- Mac上的OpenCL支持已刪除。請使用金屬或軟件渲染。
- After Effects現在不支持光線追蹤的3D渲染器。
- 預覽在其中緩存了所有幀(或在啟用回放之前緩存幀)的comp時,即使與UI交互,也應保持目標comp幀率。
- 從EXR文件讀取時更好地遵守本機FPS
- 內容感知填充更新:
內存使用量減少了66%。
性能提高了10-25%。
修復了第一次使用Content Aware Fill時顯示的警告對話框。
修復了少量透明度可能導致參考框架出現問題的問題。
- 選擇標簽組不會選擇害羞的圖層,現在也可以從“編輯”菜單中使用。
- 修復了在After Effects中報告為丟幀的非丟幀時間碼EXR序列。
- 更新了“另存為以前的版本”以支持AE版本15和16。
- 形狀層:Polystar不再卡在0內半徑處。
- 更新了Photoshop導入庫。確保您的Photoshop文件導入并正確顯示在After Effects中。
- 更新到MacOS渲染以使用Metal并開始棄用OpenGL。
- 現在,在合成中拖動時,參考線和標尺會捕捉到整個像素。如果需要較小的增量,請右鍵單擊指南以設置特定值。
- Mocha插件已更新為最新版本。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。