手機用華為 推廣找展為

推廣有品質 網站有氣質

13933871212

首頁 > 博客教程 > 展為新聞 >

石家莊設計外貿網站哪個好?

 發布日期:2020-12-12 瀏覽:842次
石家莊設計外貿網站哪個好?in Clark已經為網站制作Assembly撰寫了詳盡的系列文章,而Milica Mihajlija提供了有關如何在瀏覽器中運行本機代碼,為什么要這么做以及對JavaScript和網站制作開發的未來意味著什么的概述。
帕特里克·哈曼(Patrick Hamann)一直在談論網站制作Assembly的日益重要的作用,他揭穿了有關網站制作Assembly的一些神話,探討了它的挑戰,我們可以在當今的應用程序中實際使用它。
Google Codelabs提供了網站制作Assembly簡介,這是一個60分鐘的課程,您將在其中學習如何使用C語言獲取本機代碼并將其編譯為網站制作Assembly,然后直接從JavaScript對其進行調用。
Alex Danilo已經解釋了網站制作Assembly及其工作原理在他的Google I / O演講中。此外,Benedek Gagyi分享了有關網站制作Assembly的實際案例研究,特別是團隊如何將其用作C ++代碼庫到iOS,Android和網站的輸出格式。
網站制作Assembly的工作原理及其用途的概述。
Milica Mihajlija概述了網站制作Assembly的工作原理以及其有用性。(大型預覽)
您是否正在使用提前編譯器?
確保使用的名列前茅的實時編譯器來卸載一些客戶端渲染到服務器迅速,因此,輸出有用的結果。更后,考慮使用Optimize.js通過包裝急切調用的函數來加快初始加載速度(不過可能不再需要了)。
僅向舊版瀏覽器提供舊版代碼。
由于ES2015在現代瀏覽器中得到了很好的支持,因此我們只能使用babel-preset-env您要定位的現代瀏覽器不支持的ES2015 +功能。然后設置兩個版本,一個在ES6中,一個在ES5中。如上所述,所有主流瀏覽器現在都支持JavaScript模塊,因此,使用usescript type="module"可以使具有ES模塊支持的瀏覽器加載文件,而較早的瀏覽器可以使用加載舊版本script nomodule。我們可以使用網站制作pack ESNext Boilerplate自動化整個過程。
請注意,如今,我們可以編寫基于模塊的JavaScript,該JavaScript在瀏覽器中本機運行,而無需使用編譯器或捆綁程序。<link rel="modulepreload">標頭提供了一種啟動早期(且優先級高)模塊腳本加載的方法?;旧?,通過告訴瀏覽器需要獲取的內容,這樣在長時間的往返過程中不會有任何事情停滯,這是幫助更大化帶寬使用的一種好方法。此外,Jake Archibald還發布了一篇詳細的文章,其中涉及一些陷阱和值得一讀的ES模塊注意事項。
 
對于lodash,使用babel-plugin-lodash只會加載您在源代碼中使用的模塊。您的依賴關系可能還取決于Lodash的其他版本,因此請將通用lodash轉換為精心requires挑選的lodash ,以避免代碼重復。這可以為您節省很多JavaScript負載。
 
Shubham Kanodia編寫了一份詳細的有關智能捆綁的低維護性指南:將遺留代碼僅通過您可以立即使用的代碼片段發送給生產中的遺留瀏覽器。
 
正如杰克·阿奇博爾德(Jake Archibald)的文章所述,將內聯腳本推遲到阻塞外部腳本和內聯腳本執行之后再執行。
杰克·阿奇博爾德(Jake Archibald)發布了一篇詳細的文章,介紹了有關ES模塊的注意事項和注意事項,例如,將內聯腳本推遲到阻止外部腳本和內聯腳本執行之前執行。(大型預覽)
您是否將模塊/無模塊模式用于JavaScript?
我們只想通過網絡發送必要的JavaScript,但這意味著要更加專注于這些資產的交付。不久前, Philip Walton引入了模塊/非模塊模式的思想(也由Jeremy Wagner提出來作為差分服務)。想法是編譯并提供兩個單獨的JavaScript捆綁包:“常規”構建,一個帶有Babel變換和polyfill的捆綁包,僅將其提供給實際需要它們的舊版瀏覽器,另一個打包(相同的功能),不包含任何轉換或polyfills。
因此,我們通過減少瀏覽器需要處理的腳本數量來幫助減少主線程的阻塞。杰里米·瓦格納(Jeremy Wagner)發表了一篇有關差異服務以及如何在構建管道中進行設置的綜合文章,從設置Babel到需要在網站制作pack中進行的調整以及執行所有這些工作的好處。
 
通過增量解耦識別并重寫舊代碼。
長期存在的項目傾向于收集灰塵和過時的代碼。重新訪問您的依賴關系,并評估重構或重寫更近引起問題的舊代碼需要多少時間。當然,這總是一項艱巨的任務,但是一旦您了解了遺留代碼的影響,就可以從增量解耦開始。
首先,設置度量標準,以跟蹤舊代碼調用比例是保持不變還是下降而不是上升。公開勸阻團隊不要使用該庫,并確保您的CI如果在請求請求中使用了CI,則會提醒開發人員。polyfills可以幫助從傳統代碼過渡到使用標準瀏覽器功能的重寫代碼庫。
 
識別并刪除未使用的CSS / JS。Chrome中的
CSS和JavaScript代碼覆蓋率使您可以了解哪些代碼已執行/應用,哪些未執行。您可以開始記錄覆蓋率,在頁面上執行操作,然后瀏覽代碼覆蓋率結果。一旦檢測到未使用的代碼,請查找那些模塊并進行延遲加載import()(請參閱整個線程)。然后重復覆蓋率配置文件,并驗證它現在在初始加載時正在交付更少的代碼。
您可以使用Puppeteer以編程方式收集代碼覆蓋率,而Canary已經允許您導出代碼覆蓋率結果。正如Andy Davies指出的那樣,您可能希望同時收集現代和舊版瀏覽器的代碼覆蓋率。
 
Puppeteer還有許多其他用例,例如,自動視覺對比或在每次構建時監視未使用的CSS。如果您正在尋找有關Puppeteer的詳細指南,Nitay Neeman會對Puppeteer進行了非常全面的概述,并提供了示例和用例。
 
此外,purgecss,UnCSS和Helium可以幫助您從CSS中刪除未使用的樣式。如果不確定某個地方是否使用了可疑的代碼,則可以遵循哈里·羅伯茨的建議:為特定類創建1×1px透明GIF并將其放入dead/目錄中,例如/assets/img/dead/comments.gif。之后,您將該特定圖像設置為CSS中相應選擇器的背景,然后坐下來等待幾個月(如果文件將出現在日志中)。如果沒有條目,則沒有人在其屏幕上呈現該舊組件:您可能可以繼續將其全部刪除。
 
對于喜歡冒險的部門,您甚至可以通過使用DevTools監視DevTools來通過一組頁面自動在未使用的CSS上進行收集。
 
修剪JavaScript包的大小。
正如Addy Osmani指出的那樣,當您只需要一個分數時,很有可能會附帶完整的JavaScript庫,而對于不需要它們或只是重復代碼的瀏覽器,它會帶有過期的polyfill。為了避免開銷,請考慮使用網站制作pack-libs-optimizations在構建過程中刪除未使用的方法和polyfill。
也將捆綁包審核添加到常規工作流程中。您可能在幾年前添加了一些重型庫的輕量級替代方案,例如Moment.js可以用本機國際化API,date- fns或Luxon代替。BenediktRötsch的研究表明,從Moment.js切換到date-fns可能會為3G和低端手機上的First Paint節省大約300ms的時間。
 
在那里,諸如Bundlephobia之類的工具可以幫助您找到在軟件包中添加npm軟件包的成本。size-limit通過JavaScript執行時間的詳細信息擴展了基本的bundle大小檢查。您甚至可以將這些成本與Lighthouse Custom Audit集成在一起。這也適用于框架。通過刪除或修整Vue MDC適配器(Vue的材料組件),樣式將從194KB減少到10KB。
 
冒險嗎?您可以查看Prepack。它可以將JavaScript編譯為等效的JavaScript代碼,但是與Babel或Uglify不同,它可以讓您編寫普通的JavaScript代碼,并輸出運行速度更快的等效JavaScript代碼。
 
除了提供整個框架之外,您甚至可以修剪框架并將其編譯為不需要其他代碼的原始JavaScript包。Svelte做到了,Rawact Babel插件也做到了,該插件在構建時將React.js組件轉換為本地DOM操作。為什么?好吧,正如維護者所解釋的那樣,“ react-dom包括可呈現的每個可能組件/ HTMLElement的代碼,包括用于增量呈現,計劃,事件處理等的代碼。但是有些應用程序并不需要所有這些功能(更初是頁面加載)。對于此類應用程序,使用本機DOM操作來構建交互式用戶界面可能是有意義的。”
 
size-limit還提供基本的包大小檢查,以及有關JavaScript執行時間的詳細信息
size-limit還提供基本的包大小檢查,以及有關JavaScript執行時間的詳細信息。(大型預覽)
網站制作pack比較
BenediktRötsch在他的文章中表明,從Moment.js切換到date-fns可能會為3G和低端手機上的First paint節省大約300ms的時間。(大型預覽)
您是否正在對JavaScript塊使用預測性預???
我們可以使用啟發式方法來決定何時預加載JavaScript塊。Guess.js是一組工具和庫,它們使用Google Analytics(分析)數據來確定用戶更有可能從給定頁面訪問哪個頁面。根據從Google Analytics(分析)或其他來源收集的用戶導航模式,Guess.js構建了機器學習模型,以預測并預取每個后續??頁面上所需的JavaScript。
因此,每個交互元素都在接收參與的概率得分,并且基于該得分,客戶端腳本決定提前預取資源。您可以將該技術集成到您的Next.js應用程序,Angular和React中,并且有一個網站制作pack插件也可以自動執行設置過程。
 
顯然,您可能會提示瀏覽器使用不需要的數據并預取不需要的頁面,因此對預取請求的數量保持保守是一個好主意。一個好的用例是預取檢出所需的驗證腳本,或者在關鍵的號召性用語進入視口時進行推測性的預取。
 
需要一些不太復雜的東西?當出站鏈接出現在視口中時,DNStradamus會進行DNS預取。Quicklink和Instant.page是小型庫,它們在空閑時間自動在視口中預取鏈接,以嘗試加快下一頁導航的加載速度。Quicklink是考慮到數據的,因此它不會在2G或Data-Saver上啟用時預取,如果將模式設置為使用視口預?。J設置),則Instant.page也是如此。
 
利用針對目標JavaScript引擎的優化。
研究哪些JavaScript引擎在用戶群中占主導地位,然后探索針對它們進行優化的方法。例如,當針對Blink瀏覽器,Node.js運行時和Electron中使用的V8進行優化時,請使用腳本流來處理整體腳本。
下載開始后,腳本流允許async或defer scripts在單獨的后臺線程上進行解析,因此在某些情況下,頁面加載時間更多可縮短10%。實際上,使用<script defer>的<head>,從而使瀏覽器可以發現資源的早期,然后分析它在后臺線程。
 
注意:Opera Mini不支持腳本延遲,因此如果您是為印度或非洲開發的, defer 則將被忽略,從而導致渲染阻塞,直到對腳本進行評估為止(感謝Jeremy?。?。
 
您也可以通過使用庫將V8的代碼與庫分離,或者通過將庫及其使用合并到單個腳本中,將小文件組合在一起并避免使用內聯腳本,來加入V8的代碼緩存。甚至甚至可以使用v8-compile-cache。
 
Firefox更近發布的Baseline Interpreter提高了Firefox的速度,并且還有一些JIT優化策略可用。
 
漸進式啟動
漸進式引導意味著使用服務器端渲染來快速獲取第一個有意義的圖形,同時還包括一些更小的JavaScript以使交互時間接近第一個有意義的圖形。
客戶端渲染還是服務器端渲染?都!
那是一場非常激烈的對話。更終,決定必須由應用程序的性能決定。更終的方法是設置某種漸進式引導:使用服務器端渲染來快速獲得第一個有意義的圖形,同時還包括一些更少的必要JavaScript,以使交互時間接近第一個有意義的圖形。如果JavaScript在First Meanfulful Paint之后出現得太晚,瀏覽器將在解析,編譯和執行后來發現的JavaScript時鎖定主線程,從而削弱了站點或應用程序的交互性。
為了避免這種情況,請務必將函數的執行分解為單獨的異步任務,并盡可能使用requestIdleCallback??紤]使用網站制作Pack的動態import()支持延遲加載UI的某些部分,避免在用戶真正需要它們之前避免加載,解析和編譯成本(感謝Addy?。?。
 
本質上,互動時間(TTI)告訴我們導航和互動之間的時間。指標是通過在呈現初始內容后的前五秒鐘窗口中定義的,其中JavaScript任務所花費的時間都不超過50ms。如果發生超過50毫秒的任務,則會重新搜索五秒鐘的窗口。結果,瀏覽器將首先假定它已到達Interactive,只是切換到Frozen,還是更終切換回Interactive。
 
進入Interactive后,我們可以按需或在時間允許的情況下啟動應用程序的非必需部分。不幸的是,正如Paul Lewis所注意到的那樣,框架通常沒有簡單的優先級概念可以向開發人員浮出水面,因此對于大多數庫和框架而言,逐步啟動并不容易實現。
 
不過,我們到了那里。如今,我們可以探索幾種選擇,侯賽因·吉吉(Houssein Djirdeh)和杰森·米勒(Jason Miller)在有關網絡渲染的演講中很好地概述了這些選擇。。以下概述基于他們的談話。
 
完整的服務器端渲染(SSR)
在經典的SSR中,例如WordPress,所有請求都完全在服務器上處理。所請求的內容將作為完成的HTML頁面返回,瀏覽器可以立即呈現它。因此,例如,SSR應用程序不能真正使用DOM API。First Contentful Paint和互動時間之間的差距通常很小,并且可以在將HTML流式傳輸到瀏覽器時立即呈現頁面。但是,我們更終需要更長的服務器思考時間,因此也需要時間到第一個字節,并且我們沒有利用現代應用程序的響應式功能和豐富功能。
靜態SSR(SSR)
我們將產品作為單個頁面應用程序進行構建,但是在構建步驟中,所有頁面都使用更少的JavaScript預呈現為靜態HTML。因此,我們可以快速顯示登錄頁面,然后為后續頁面預取SPA框架。Netflix采用了這種方法,可將加載量和互動時間降低50%。
使用(Re)水化(SSR + CSR)進行服務器端渲染
在混合中使用水合作用時,從服務器返回的HTML頁面還包含一個腳本,該腳本可加載完整的客戶端應用程序。

返回列表

相關新聞

CopyRight 2004-2018 JSOON NETWORK , Inc. All Rights Reserved 石家莊網絡公司展為網絡十周年? ?服務熱線:13933871212???冀ICP備14018173號-6? ?
致力于提供石家莊網站制作,石家莊網站建設,石家莊營銷型網站制作,石家莊seo,石家莊網站優化,石家莊網絡廣營銷,石家莊建網站等服務 網站地圖

深圳风采中三个有奖吗 北京单场山形山神 足彩比分直播 6月底分莱特币行情 澳门博彩bc6078一Welcome 中国福利彩票25选5开奖号码 足球竞猜让分胜负规则 山西11选5走势遗漏 农产品期货风险 美人捕鱼游戏下载安装v1.0.3 牛牛娱乐棋牌上下分 3d历史开奖号码查询 幸运五分赛车骗局 股票平台交易放大资金怎么骗人 信阳我爱棋牌游戏下载 九线水果拉霸安卓 双色球带坐标9188