HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    web性能優(yōu)化(web性能優(yōu)化面試題)

    發(fā)布時間:2023-04-14 08:58:20     稿源: 創(chuàng)意嶺    閱讀: 108        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于web性能優(yōu)化的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    web性能優(yōu)化(web性能優(yōu)化面試題)

    一、webpack打包的CSS含有兩個相同的引入?

    1. 摘要

    Webpack是一種前端資源構(gòu)建工具,一個靜態(tài)模塊打包器。在Webpack看來,前端的所有資源文件(js/json/css/img/less/…)都會作為模塊處理,當(dāng)Webpack處理應(yīng)用程序時,它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,打包生成對應(yīng)的靜態(tài)資源。Webpack打包流程圖如圖1-1所示。

    想了解Webpack,看這篇就夠了

    圖1-1 Webpack打包流程圖

    2. Webpack五個核心概念

    2.1 Entry

    入口(Entry)指示W(wǎng)ebpack以哪個文件作為入口起點分析構(gòu)建內(nèi)部依賴圖并進(jìn)行打包。

    2.2 Output

    輸出(Output)指示W(wǎng)ebpack打包后的資源bundles輸出到哪里去,以及如何命名。

    2.3 Loader

    Loader讓W(xué)ebpack能夠去處理那些非JavaScript語言的文件,Webpack本身只能理解JavaScript。

    2.4 Plugins

    插件(Plugins)可以用于執(zhí)行范圍更廣的任務(wù),插件的范圍包括從打包和壓縮,一直到重新定義環(huán)境中的變量等。

    2.5 Mode

    模式(Mode)指示W(wǎng)ebpack使用相應(yīng)模式的配置。分為development和production兩種模式,下面分別進(jìn)行簡述。

    development: 開發(fā)模式,能讓代碼本地運行的環(huán)境,會將process.env.NODE_ENV的值設(shè)為development,同時啟用NamedChunksPlugin和NamedModulesPlugin插件;

    production: 生產(chǎn)模式,能讓代碼優(yōu)化運行的環(huán)境,會將process.env.NODE_ENV的值設(shè)為production,同時啟用FlagDependencyUsagePlugin、FlagIncludedChunksPlugin、ModuleConcatenationPlugin、NoEmitreplaceStringsPlugin、OccurrenceOrderPlugin、SideEffectsFlagPlugin和UglifyJsPlugin插件。

    3. Wbepack配置

    3.1 webpack.config.js文件

    webpack.config.js是webpack的配置文件,用來指示webpack工作,運行webpack指令時,會加載里面的配置,所有構(gòu)建工具都是基于nodejs平臺運行的,默認(rèn)采用commonjs模塊化。webpack.config.js基礎(chǔ)配置如圖3-1所示。

    想了解Webpack,看這篇就夠了

    圖3-1 webpack.config.js基礎(chǔ)配置

    3.2 devServer配置

    開發(fā)服務(wù)器(devServer)用來實現(xiàn)自動化(自動編譯、自動打開瀏覽器、自動刷新瀏覽器),只會在內(nèi)存中編譯打包,不會有任何文件輸出,本地安裝webpack-dev-server后,通過npx webpack-dev-server命令啟動devServer,核心代碼如圖3-2所示。

    想了解Webpack,看這篇就夠了

    圖3-2 devServer配置核心代碼

    3.3 打包html/樣式/圖片/其它資源

    打包不同的資源會使用不同的loader和插件,打包html/樣式/圖片/其它資源的流程如下所述。

    3.3.1 打包html資源

    1.下載html-webpack-plugin插件;

    2.引入html-webpack-plugin插件;

    3.使用html-webpack-plugin插件,并進(jìn)行相應(yīng)配置。

    3.3.2 打包樣式資源

    不同的樣式文件需要配置不同的loader

    1.下載loader;

    2.配置loader,css樣式文件使用css-loader和style-loader,less文件使用less-loader、css-loader和style-loader。其中css-loader的作用是將css文件變成commonjs模塊加載到j(luò)s文件中,style-loader的作用是創(chuàng)建style標(biāo)簽,將js中的樣式資源插入進(jìn)去,添加到head中生效。

    3.3.3 打包圖片資源

    1.下載url-loader,file-loader

    2.配置loader

    3.3.4 打包其它資源

    1.下載file-loader

    2. 配置loader,配置該loader作用于不為html/css/less/js的其他文件

    3.4 提取css成單獨文件/css兼容性處理/壓縮css

    3.4.1 提取css成單獨文件

    樣式文件打包后會默認(rèn)和js文件一起輸出,可以通過插件將打包后的css文件單獨輸出,流程如下所述。

    1.下載mini-css-extract-plugin插件

    2.引用該插件

    3.配置

    3.4.2 css兼容性處理

    1.下載postcss-loader和postcss-preset-env

    2.在package.json中browsetslist屬性中分別對開發(fā)環(huán)境和生產(chǎn)環(huán)境進(jìn)行兼容性配置,設(shè)置支持樣式的瀏覽器版本

    3.通過postcss找到package.json中browserslist里面的配置,通過配置加載指定的css兼容性樣式。

    3.4.3 壓縮css

    1.下載optimize-css-assets-webpack-plugin插件

    2.引用該插件

    3.使用該插件

    3.5 js語法檢查eslint/js兼容性處理/js壓縮

    3.5.1 js語法檢查eslint

    1.下載eslint-loader和eslint

    2.在package.json中的eslintConfig中進(jìn)行配置

    3.配置eslint-loader,其中只需檢測js文件并要排除第三方庫,只檢測自己寫的源代碼,同時可在options配置中設(shè)置fix:true,自動修復(fù)eslint的錯誤。

    3.5.2 js兼容性處理

    1.下載babel-loader、@babel/core、@babel/preset-env,通過@babel/preset-env做基本的js兼容性處理,然后通過corejs做前面無法實現(xiàn)的兼容性處理,并實現(xiàn)按需加載

    2. 配置loader

    js兼容性處理核心代碼如圖3-3所示

    想了解Webpack,看這篇就夠了

    圖3-3 js兼容性處理核心代碼

    3.5.3 js壓縮

    mode設(shè)置為production生產(chǎn)環(huán)境時會自動壓縮js代碼。

    4. webpack性能優(yōu)化

    可以從開發(fā)環(huán)境和生產(chǎn)環(huán)境分別對webpack進(jìn)行性能優(yōu)化。其中開發(fā)環(huán)境主要考慮從打包構(gòu)建速度和代碼調(diào)試兩個方面進(jìn)行優(yōu)化,生產(chǎn)環(huán)境主要考慮從打包構(gòu)建速度和代碼運行性能這兩個方面進(jìn)行優(yōu)化。下面簡單介紹下開發(fā)環(huán)境上通過HMR提升構(gòu)建速度。

    4.1 HMR

    HMR(熱模塊替換),作用是一個模塊發(fā)生變化后,只會更新打包這一個模塊而不是所有模塊,通過在devServer中設(shè)置hot:true屬性啟動HMR功能。

    其中對于樣式文件,可以使用HMR功能,因為style-loader內(nèi)部實現(xiàn)了;

    對于js文件,默認(rèn)不能使用HMR功能,解決方法:修改入口文件js代碼,添加支持HMR功能的代碼,另外HMR只能處理非入口js文件的其他文件,對入口文件并不能生效,因為一旦入口文件更新,入口文件引入的其他文件一定會被重新加載;

    對于html文件,默認(rèn)不能使用HMR功能,同時會導(dǎo)致html文件不能熱更新,解決方法:修改entry入口文件,將html文件引入,只能解決html文件不能熱更新的問題。

    二、WEB前端培訓(xùn)課程需要學(xué)習(xí)哪些方面的技術(shù)

    WEB前端培訓(xùn)課程需要學(xué)習(xí)以下8方面的技術(shù):

    1、前端核心基礎(chǔ):HTML +_CSS核心、【JavaScript基礎(chǔ)語法】、JavaScript面向?qū)ο?、JavaScript DOM和BOM編程、jQuery框架。

    2、HTML5 + CSS3 + 移動端核心:HTML5新特性、Canvas專列、CSS3新特性、CSS3進(jìn)階、CSS3實例演練。

    3、移動端:移動端核心、移動端適配、移動端特效。

    4、服務(wù)器端:服務(wù)器端開發(fā)、數(shù)據(jù)庫操作、前后端交互核心、微信公眾號開發(fā)。

    5、JavaScript高級:JavaScript基礎(chǔ)深入剖析、JavaScript面向?qū)ο笊钊胫v解、JavaScript異步編程、JavaScript函數(shù)式編程、JavaScript設(shè)計模式。

    6、前端必備:性能優(yōu)化、版本控制工具、模塊化、項目構(gòu)建工具。

    7、高級框架:React框架基本使用、React框架進(jìn)階、Vue框架基本使用、Vue框架進(jìn)階、Vue源碼分析。

    8、小程序:原生小程序入門、原生小程序API使用、小程序框架Mpvue。感興趣的話點擊此處,免費學(xué)習(xí)一下

    想了解更多有關(guān)WEB前端的相關(guān)信息,推薦咨詢【達(dá)內(nèi)教育】。該機構(gòu)致力于面向IT互聯(lián)網(wǎng)行業(yè),培養(yǎng)軟件開發(fā)工程師、測試工程師、UI設(shè)計師、網(wǎng)絡(luò)營銷工程師、會計等職場人才,擁有行業(yè)內(nèi)完善的教研團(tuán)隊,強大的師資力量,確保學(xué)員利益,全方位保障學(xué)員學(xué)習(xí);更是與多家企業(yè)簽訂人才培養(yǎng)協(xié)議,全面助力學(xué)員更好就業(yè)。達(dá)內(nèi)IT培訓(xùn)機構(gòu),試聽名額限時搶購。

    三、web前端開發(fā)如何入門提高

    web前端就是用代碼的形式,還原UI設(shè)計師設(shè)計的界面,并實現(xiàn)各種交互效果。web前端工程師是程序員里面入行門檻較低的一個職業(yè),就前端應(yīng)用開發(fā)框架而言,已經(jīng)形成了HTML5、CSS3、《Ecmascript 6》標(biāo)準(zhǔn)規(guī)范。

    要學(xué)的內(nèi)容主要有:

    ①計算機基礎(chǔ)以及PS基礎(chǔ)

    ②前端開發(fā)基礎(chǔ)(HTML5開發(fā)、JavaScript基礎(chǔ)到高級、jQuery網(wǎng)頁特效、Bootstrap框架)

    ③移動開發(fā)

    ④前端高級開發(fā)(ECMAScript6、Veu.js框架開發(fā)、webpack、前端頁面優(yōu)化、React框架開發(fā)、AngularJS 2.0框架開發(fā)等)

    ⑤小程序開發(fā)

    ⑥全棧開發(fā)(MySQL數(shù)據(jù)庫、Python編程語言、Django框架等)

    ⑦就業(yè)拓展(網(wǎng)站SEO與前端安全技術(shù))

    互聯(lián)網(wǎng)行業(yè)目前還是最熱門的行業(yè)之一,學(xué)習(xí)IT技能之后足夠優(yōu)秀是有機會進(jìn)入騰訊、阿里、網(wǎng)易等互聯(lián)網(wǎng)大廠高薪就業(yè)的,發(fā)展前景非常好,普通人也可以學(xué)習(xí)。

    想要系統(tǒng)學(xué)習(xí),你可以考察對比一下開設(shè)有相關(guān)專業(yè)的熱門學(xué)校,好的學(xué)校擁有根據(jù)當(dāng)下企業(yè)需求自主研發(fā)課程的能力,建議實地考察對比一下。

    祝你學(xué)有所成,望采納。

    web性能優(yōu)化(web性能優(yōu)化面試題)

    四、編程書籍入門必備

    如果你之前一點編程經(jīng)驗都沒有,先看如下兩本:

    1、《簡明Python教程》(A Byte of Python)

    入門Python的絕佳Tutorial,從書的目錄便可以了解到作者Swaroop C H清晰的行文思路,以及對Python高超的駕馭能力。

    2、《集體智慧編程》

    以具體實例的方式來展示Python的編程技巧,受益良多。作者用非常直觀的方式向讀者展示了人工智能和機器學(xué)習(xí)中的大量經(jīng)典的算法。更可貴的是,作者在展示算法時所使用的例子都是網(wǎng)絡(luò)中非常有代表性的場景,并且很多情況下還會結(jié)合一些實際運營的 Web 站點的數(shù)據(jù)作更進(jìn)步闡釋。當(dāng)然,作為一本實用型的書,少不了的是大量可運行的代碼。

    3、《Python Cookbook中文版,第3版》

    這本書可謂Python版《代碼大全》。有人說《代碼大全》這類書是字典,其實不盡然《代碼大全》是高手過招。《Cookbook》也如此,閱讀時總能讓你有一種:“哇塞,漂亮!”的感覺。能把 Cookbook 全部讀完,你的Python水平絕對發(fā)生質(zhì)變。

    二、Java語言系列(3本)

    1、《Java核心技術(shù)·卷1:基礎(chǔ)知識(原書第9版)》

    Java領(lǐng)域最有影響力和價值的著作之一,擁有20多年教學(xué)與研究經(jīng)驗的資深Java技術(shù)專家撰寫,與《Java編程思想》齊名。

    2、《算法 第四版》

    Java 語言描述,算法領(lǐng)域經(jīng)典的參考書,全面介紹了關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)的必備知識,并特別針對排序、搜索、圖處理和字符串處理進(jìn)行了論述。書的內(nèi)容非常多,可以說是Java程序員的必備書籍之一。

    3、《數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語言描述》

    這本書真是非常好!個人感覺很適合給初學(xué)者入門看,里面的分析數(shù)學(xué)公式恰到好處,沒有算法導(dǎo)論的令人望而生畏,也沒有國內(nèi)圖書的草草了事,既學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)又有剛剛好的算法分析,很容易使人產(chǎn)生共鳴。

    當(dāng)然,對于Java我們建議進(jìn)行系統(tǒng)的學(xué)習(xí),扎實基礎(chǔ)不能只靠看書。如果你有任何疑問,歡迎你在千鋒武漢官網(wǎng)上留下你的相關(guān)情況,我再對號入座幫你解答。

    三、前端系列(4本)

    1、《Java權(quán)威指南(第6版)》

    淘寶前端團(tuán)隊翻譯,這本書又叫犀牛書,號稱Java開發(fā)者的圣經(jīng),網(wǎng)上對此書評價很多,大概意思都是說這本書是一本Java文檔手冊,沒有完整看過一遍此書的都不能算是一名合格的前端工程師。

    2、《Java高級程序設(shè)計(第3版)》

    又稱紅寶書,雅虎首席前端架構(gòu)師,YUI的作者Zakas出品。雖然書名帶了“高級”二字,但是講得也很基礎(chǔ),而且行文風(fēng)格很流暢,每一小節(jié)就像是一篇博客,讀起來并不枯燥,個人感覺比上面那本犀牛書可讀性更強。

    3、《Java設(shè)計模式與開發(fā)實踐》

    本書是在設(shè)計模式上的進(jìn)一步擴充。一大特點就是結(jié)合實操,代碼完整能直接應(yīng)用到實際開發(fā)中。

    4、《Web性能權(quán)威指南》

    本書是谷歌公司高性能團(tuán)隊核心成員的權(quán)威之作,堪稱實戰(zhàn)經(jīng)驗與規(guī)范解讀完美結(jié)合的產(chǎn)物。本書目標(biāo)是涵蓋Web開發(fā)者技術(shù)體系中應(yīng)該掌握的所有網(wǎng)絡(luò)及性能優(yōu)化知識。

    以上就是關(guān)于web性能優(yōu)化相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    web服務(wù)接口類型(web服務(wù)接口類型是什么)

    wechat的中文翻譯(vx中文翻譯)

    WeChat_8.10谷歌版(wechat 谷歌版)

    佛山內(nèi)衣品牌排行榜(佛山內(nèi)衣廠)

    浙江杭州的上市公司(浙江杭州的上市公司名單中國資委控股的股票有哪些)