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

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

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

    大家好!今天讓創(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

    本文目錄:

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

    一、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é)有所成,望采納。

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

    四、編程書籍入門必備

    如果你之前一點(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ù)接口類型是什么)

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

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

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

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