-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
4、編程書籍入門必備
web性能優(yōu)化(web性能優(yōu)化面試題)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于web性能優(yōu)化的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、webpack打包的CSS含有兩個(gè)相同的引入?
1. 摘要
Webpack是一種前端資源構(gòu)建工具,一個(gè)靜態(tài)模塊打包器。在Webpack看來,前端的所有資源文件(js/json/css/img/less/…)都會(huì)作為模塊處理,當(dāng)Webpack處理應(yīng)用程序時(shí),它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,打包生成對(duì)應(yīng)的靜態(tài)資源。Webpack打包流程圖如圖1-1所示。
想了解Webpack,看這篇就夠了
圖1-1 Webpack打包流程圖
2. Webpack五個(gè)核心概念
2.1 Entry
入口(Entry)指示W(wǎng)ebpack以哪個(gè)文件作為入口起點(diǎn)分析構(gòu)建內(nèi)部依賴圖并進(jìn)行打包。
2.2 Output
輸出(Output)指示W(wǎng)ebpack打包后的資源bundles輸出到哪里去,以及如何命名。
2.3 Loader
Loader讓W(xué)ebpack能夠去處理那些非JavaScript語(yǔ)言的文件,Webpack本身只能理解JavaScript。
2.4 Plugins
插件(Plugins)可以用于執(zhí)行范圍更廣的任務(wù),插件的范圍包括從打包和壓縮,一直到重新定義環(huán)境中的變量等。
2.5 Mode
模式(Mode)指示W(wǎng)ebpack使用相應(yīng)模式的配置。分為development和production兩種模式,下面分別進(jìn)行簡(jiǎn)述。
development: 開發(fā)模式,能讓代碼本地運(yùn)行的環(huán)境,會(huì)將process.env.NODE_ENV的值設(shè)為development,同時(shí)啟用NamedChunksPlugin和NamedModulesPlugin插件;
production: 生產(chǎn)模式,能讓代碼優(yōu)化運(yùn)行的環(huán)境,會(huì)將process.env.NODE_ENV的值設(shè)為production,同時(shí)啟用FlagDependencyUsagePlugin、FlagIncludedChunksPlugin、ModuleConcatenationPlugin、NoEmitreplaceStringsPlugin、OccurrenceOrderPlugin、SideEffectsFlagPlugin和UglifyJsPlugin插件。
3. Wbepack配置
3.1 webpack.config.js文件
webpack.config.js是webpack的配置文件,用來指示webpack工作,運(yùn)行webpack指令時(shí),會(huì)加載里面的配置,所有構(gòu)建工具都是基于nodejs平臺(tái)運(yùn)行的,默認(rèn)采用commonjs模塊化。webpack.config.js基礎(chǔ)配置如圖3-1所示。
想了解Webpack,看這篇就夠了
圖3-1 webpack.config.js基礎(chǔ)配置
3.2 devServer配置
開發(fā)服務(wù)器(devServer)用來實(shí)現(xiàn)自動(dòng)化(自動(dòng)編譯、自動(dòng)打開瀏覽器、自動(dòng)刷新瀏覽器),只會(huì)在內(nèi)存中編譯打包,不會(huì)有任何文件輸出,本地安裝webpack-dev-server后,通過npx webpack-dev-server命令啟動(dòng)devServer,核心代碼如圖3-2所示。
想了解Webpack,看這篇就夠了
圖3-2 devServer配置核心代碼
3.3 打包html/樣式/圖片/其它資源
打包不同的資源會(huì)使用不同的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成單獨(dú)文件/css兼容性處理/壓縮css
3.4.1 提取css成單獨(dú)文件
樣式文件打包后會(huì)默認(rèn)和js文件一起輸出,可以通過插件將打包后的css文件單獨(dú)輸出,流程如下所述。
1.下載mini-css-extract-plugin插件
2.引用該插件
3.配置
3.4.2 css兼容性處理
1.下載postcss-loader和postcss-preset-env
2.在package.json中browsetslist屬性中分別對(duì)開發(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語(yǔ)法檢查eslint/js兼容性處理/js壓縮
3.5.1 js語(yǔ)法檢查eslint
1.下載eslint-loader和eslint
2.在package.json中的eslintConfig中進(jìn)行配置
3.配置eslint-loader,其中只需檢測(cè)js文件并要排除第三方庫(kù),只檢測(cè)自己寫的源代碼,同時(shí)可在options配置中設(shè)置fix:true,自動(dòng)修復(fù)eslint的錯(cuò)誤。
3.5.2 js兼容性處理
1.下載babel-loader、@babel/core、@babel/preset-env,通過@babel/preset-env做基本的js兼容性處理,然后通過corejs做前面無法實(shí)現(xiàn)的兼容性處理,并實(shí)現(xiàn)按需加載
2. 配置loader
js兼容性處理核心代碼如圖3-3所示
想了解Webpack,看這篇就夠了
圖3-3 js兼容性處理核心代碼
3.5.3 js壓縮
mode設(shè)置為production生產(chǎn)環(huán)境時(shí)會(huì)自動(dòng)壓縮js代碼。
4. webpack性能優(yōu)化
可以從開發(fā)環(huán)境和生產(chǎn)環(huán)境分別對(duì)webpack進(jìn)行性能優(yōu)化。其中開發(fā)環(huán)境主要考慮從打包構(gòu)建速度和代碼調(diào)試兩個(gè)方面進(jìn)行優(yōu)化,生產(chǎn)環(huán)境主要考慮從打包構(gòu)建速度和代碼運(yùn)行性能這兩個(gè)方面進(jìn)行優(yōu)化。下面簡(jiǎn)單介紹下開發(fā)環(huán)境上通過HMR提升構(gòu)建速度。
4.1 HMR
HMR(熱模塊替換),作用是一個(gè)模塊發(fā)生變化后,只會(huì)更新打包這一個(gè)模塊而不是所有模塊,通過在devServer中設(shè)置hot:true屬性啟動(dòng)HMR功能。
其中對(duì)于樣式文件,可以使用HMR功能,因?yàn)閟tyle-loader內(nèi)部實(shí)現(xiàn)了;
對(duì)于js文件,默認(rèn)不能使用HMR功能,解決方法:修改入口文件js代碼,添加支持HMR功能的代碼,另外HMR只能處理非入口js文件的其他文件,對(duì)入口文件并不能生效,因?yàn)橐坏┤肟谖募?,入口文件引入的其他文件一定?huì)被重新加載;
對(duì)于html文件,默認(rèn)不能使用HMR功能,同時(shí)會(huì)導(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ǔ)語(yǔ)法】、JavaScript面向?qū)ο?、JavaScript DOM和BOM編程、jQuery框架。
2、HTML5 + CSS3 + 移動(dòng)端核心:HTML5新特性、Canvas專列、CSS3新特性、CSS3進(jìn)階、CSS3實(shí)例演練。
3、移動(dòng)端:移動(dòng)端核心、移動(dòng)端適配、移動(dòng)端特效。
4、服務(wù)器端:服務(wù)器端開發(fā)、數(shù)據(jù)庫(kù)操作、前后端交互核心、微信公眾號(hào)開發(fā)。
5、JavaScript高級(jí):JavaScript基礎(chǔ)深入剖析、JavaScript面向?qū)ο笊钊胫v解、JavaScript異步編程、JavaScript函數(shù)式編程、JavaScript設(shè)計(jì)模式。
6、前端必備:性能優(yōu)化、版本控制工具、模塊化、項(xiàng)目構(gòu)建工具。
7、高級(jí)框架:React框架基本使用、React框架進(jìn)階、Vue框架基本使用、Vue框架進(jìn)階、Vue源碼分析。
8、小程序:原生小程序入門、原生小程序API使用、小程序框架Mpvue。感興趣的話點(diǎn)擊此處,免費(fèi)學(xué)習(xí)一下
想了解更多有關(guān)WEB前端的相關(guān)信息,推薦咨詢【達(dá)內(nèi)教育】。該機(jī)構(gòu)致力于面向IT互聯(lián)網(wǎng)行業(yè),培養(yǎng)軟件開發(fā)工程師、測(cè)試工程師、UI設(shè)計(jì)師、網(wǎng)絡(luò)營(yíng)銷工程師、會(huì)計(jì)等職場(chǎng)人才,擁有行業(yè)內(nèi)完善的教研團(tuán)隊(duì),強(qiáng)大的師資力量,確保學(xué)員利益,全方位保障學(xué)員學(xué)習(xí);更是與多家企業(yè)簽訂人才培養(yǎng)協(xié)議,全面助力學(xué)員更好就業(yè)。達(dá)內(nèi)IT培訓(xùn)機(jī)構(gòu),試聽名額限時(shí)搶購(gòu)。
三、web前端開發(fā)如何入門提高
web前端就是用代碼的形式,還原UI設(shè)計(jì)師設(shè)計(jì)的界面,并實(shí)現(xiàn)各種交互效果。web前端工程師是程序員里面入行門檻較低的一個(gè)職業(yè),就前端應(yīng)用開發(fā)框架而言,已經(jīng)形成了HTML5、CSS3、《Ecmascript 6》標(biāo)準(zhǔn)規(guī)范。
要學(xué)的內(nèi)容主要有:
①計(jì)算機(jī)基礎(chǔ)以及PS基礎(chǔ)
②前端開發(fā)基礎(chǔ)(HTML5開發(fā)、JavaScript基礎(chǔ)到高級(jí)、jQuery網(wǎng)頁(yè)特效、Bootstrap框架)
③移動(dòng)開發(fā)
④前端高級(jí)開發(fā)(ECMAScript6、Veu.js框架開發(fā)、webpack、前端頁(yè)面優(yōu)化、React框架開發(fā)、AngularJS 2.0框架開發(fā)等)
⑤小程序開發(fā)
⑥全棧開發(fā)(MySQL數(shù)據(jù)庫(kù)、Python編程語(yǔ)言、Django框架等)
⑦就業(yè)拓展(網(wǎng)站SEO與前端安全技術(shù))
互聯(lián)網(wǎng)行業(yè)目前還是最熱門的行業(yè)之一,學(xué)習(xí)IT技能之后足夠優(yōu)秀是有機(jī)會(huì)進(jìn)入騰訊、阿里、網(wǎng)易等互聯(lián)網(wǎng)大廠高薪就業(yè)的,發(fā)展前景非常好,普通人也可以學(xué)習(xí)。
想要系統(tǒng)學(xué)習(xí),你可以考察對(duì)比一下開設(shè)有相關(guān)專業(yè)的熱門學(xué)校,好的學(xué)校擁有根據(jù)當(dāng)下企業(yè)需求自主研發(fā)課程的能力,建議實(shí)地考察對(duì)比一下。
祝你學(xué)有所成,望采納。
四、編程書籍入門必備
如果你之前一點(diǎn)編程經(jīng)驗(yàn)都沒有,先看如下兩本:
1、《簡(jiǎn)明Python教程》(A Byte of Python)
入門Python的絕佳Tutorial,從書的目錄便可以了解到作者Swaroop C H清晰的行文思路,以及對(duì)Python高超的駕馭能力。
2、《集體智慧編程》
以具體實(shí)例的方式來展示Python的編程技巧,受益良多。作者用非常直觀的方式向讀者展示了人工智能和機(jī)器學(xué)習(xí)中的大量經(jīng)典的算法。更可貴的是,作者在展示算法時(shí)所使用的例子都是網(wǎng)絡(luò)中非常有代表性的場(chǎng)景,并且很多情況下還會(huì)結(jié)合一些實(shí)際運(yùn)營(yíng)的 Web 站點(diǎn)的數(shù)據(jù)作更進(jìn)步闡釋。當(dāng)然,作為一本實(shí)用型的書,少不了的是大量可運(yùn)行的代碼。
3、《Python Cookbook中文版,第3版》
這本書可謂Python版《代碼大全》。有人說《代碼大全》這類書是字典,其實(shí)不盡然《代碼大全》是高手過招。《Cookbook》也如此,閱讀時(shí)總能讓你有一種:“哇塞,漂亮!”的感覺。能把 Cookbook 全部讀完,你的Python水平絕對(duì)發(fā)生質(zhì)變。
二、Java語(yǔ)言系列(3本)
1、《Java核心技術(shù)·卷1:基礎(chǔ)知識(shí)(原書第9版)》
Java領(lǐng)域最有影響力和價(jià)值的著作之一,擁有20多年教學(xué)與研究經(jīng)驗(yàn)的資深Java技術(shù)專家撰寫,與《Java編程思想》齊名。
2、《算法 第四版》
Java 語(yǔ)言描述,算法領(lǐng)域經(jīng)典的參考書,全面介紹了關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)的必備知識(shí),并特別針對(duì)排序、搜索、圖處理和字符串處理進(jìn)行了論述。書的內(nèi)容非常多,可以說是Java程序員的必備書籍之一。
3、《數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語(yǔ)言描述》
這本書真是非常好!個(gè)人感覺很適合給初學(xué)者入門看,里面的分析數(shù)學(xué)公式恰到好處,沒有算法導(dǎo)論的令人望而生畏,也沒有國(guó)內(nèi)圖書的草草了事,既學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)又有剛剛好的算法分析,很容易使人產(chǎn)生共鳴。
當(dāng)然,對(duì)于Java我們建議進(jìn)行系統(tǒng)的學(xué)習(xí),扎實(shí)基礎(chǔ)不能只靠看書。如果你有任何疑問,歡迎你在千鋒武漢官網(wǎng)上留下你的相關(guān)情況,我再對(duì)號(hào)入座幫你解答。
三、前端系列(4本)
1、《Java權(quán)威指南(第6版)》
淘寶前端團(tuán)隊(duì)翻譯,這本書又叫犀牛書,號(hào)稱Java開發(fā)者的圣經(jīng),網(wǎng)上對(duì)此書評(píng)價(jià)很多,大概意思都是說這本書是一本Java文檔手冊(cè),沒有完整看過一遍此書的都不能算是一名合格的前端工程師。
2、《Java高級(jí)程序設(shè)計(jì)(第3版)》
又稱紅寶書,雅虎首席前端架構(gòu)師,YUI的作者Zakas出品。雖然書名帶了“高級(jí)”二字,但是講得也很基礎(chǔ),而且行文風(fēng)格很流暢,每一小節(jié)就像是一篇博客,讀起來并不枯燥,個(gè)人感覺比上面那本犀牛書可讀性更強(qiáng)。
3、《Java設(shè)計(jì)模式與開發(fā)實(shí)踐》
本書是在設(shè)計(jì)模式上的進(jìn)一步擴(kuò)充。一大特點(diǎn)就是結(jié)合實(shí)操,代碼完整能直接應(yīng)用到實(shí)際開發(fā)中。
4、《Web性能權(quán)威指南》
本書是谷歌公司高性能團(tuán)隊(duì)核心成員的權(quán)威之作,堪稱實(shí)戰(zhàn)經(jīng)驗(yàn)與規(guī)范解讀完美結(jié)合的產(chǎn)物。本書目標(biāo)是涵蓋Web開發(fā)者技術(shù)體系中應(yīng)該掌握的所有網(wǎng)絡(luò)及性能優(yōu)化知識(shí)。
以上就是關(guān)于web性能優(yōu)化相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
web服務(wù)接口類型(web服務(wù)接口類型是什么)
浙江杭州的上市公司(浙江杭州的上市公司名單中國(guó)資委控股的股票有哪些)