国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

常見前端項目性能優(yōu)化方案

這篇具有很好參考價值的文章主要介紹了常見前端項目性能優(yōu)化方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

常見前端項目性能優(yōu)化方案

一、頁面內(nèi)容優(yōu)化

  1. 減少http請求次數(shù)
  2. 減少DNS查詢次數(shù)
  3. 避免頁面跳轉(zhuǎn)
  4. 緩存ajax
  5. 延遲加載(一般用在圖片多的頁面中,滾動時才加載)
  6. 預加載
  7. 減少DOM元素數(shù)量
  8. 減少iframe數(shù)量
  9. 避免404

二、css優(yōu)化

  1. 將樣式表置頂將 (CSS放在 HEAD中,防止瀏覽器有可能還未下載和解析到 CSS就已經(jīng)開始渲染頁面)
  2. 避免css表達式
  3. 用link代替@import ; 使用css@import會造成額外的請求
  4. 避免使用filters
  5. css文件合并與壓縮

三、js代碼優(yōu)化

  1. 將腳本置底(將腳本內(nèi)容在頁面信息內(nèi)容加載后再加載)
  2. 使用外部javascript和css文件
  3. 去除重復腳本,避免重復的資源請求
  4. 減少DOM訪問(修改和訪問DOM元素會造成頁面的重繪和重排,循環(huán)對DOM操作更是減慢頁面加載速度)
  5. js文件合并與壓縮

四、圖片優(yōu)化

  1. 優(yōu)化圖片大小
  2. 盡量使用css sprite(精靈圖也叫雪碧圖)
  3. 不要在html中縮放圖片
  4. 使用小且可緩存的favicon.ico
  5. 在代碼中進行圖片的延遲加載,也叫做賴加載。
  6. 避免img、iframe等標簽的src屬性為空:空src會重新加載當前頁面,影響速度和效率。
  7. 圖像盡量避免使用DataURL:DataURL圖像沒有使用圖像壓縮算法,文件會變大,并且要解碼后再渲染,加載慢耗時長。

五、減少Cookie傳輸

  1. Cookie包含在每次請求和響應中,太大的Cookie會嚴重影響數(shù)據(jù)傳輸,因此哪些數(shù)據(jù)需要寫入Cookie需要慎重考慮,盡量減少Cookie中傳輸?shù)臄?shù)據(jù)量。

六、瀏覽器端使用緩存

  1. CSS、JavaScript、Logo、圖標這些靜態(tài)資源文件更新的頻率都比較低,而這些文件又幾乎是每次HTTP請求都需要的,如果將這些文件緩存在瀏覽器中,可以極好地改善性能。
  2. 用法:通過設置HTTP頭中的Cache-Control和Expires屬性,可設定瀏覽器緩存,緩存時間可以是數(shù)天,甚至是數(shù)月。

七、服務器端使用壓縮

  1. 在服務器端對文件進行壓縮,在瀏覽器對文件解壓縮,可有效減少通信傳輸?shù)臄?shù)據(jù)量。文本文件的壓縮率可達80%以上,因此HTML、CSS、JavaScript文件啟用GZip壓縮可達到較好的效果。但是壓縮對服務器和瀏覽器產(chǎn)生一定的壓力,在通信帶寬良好,而服務器資源不足的情況下要權衡考慮。

八、減少資源大小

html壓縮
html代碼壓縮就是壓縮在文本文件中有意義,但是在html中不顯示的字符,包括空格,制表符

css壓縮
css壓縮包括無效代碼刪除與css語義合并

js壓縮與混亂
js壓縮與混亂包括無效字符及注釋的刪除、代碼語義的縮減和優(yōu)化、降低代碼的可讀性、實現(xiàn)代碼的保護

圖片壓縮

九、優(yōu)化網(wǎng)絡連接

1 使用CDN
CDN是內(nèi)容分發(fā)網(wǎng)絡,它能夠?qū)崟r地根據(jù)網(wǎng)絡流量和各個節(jié)點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節(jié)點上,其目的是使用戶可以就近的取得所需內(nèi)容,解決網(wǎng)絡擁擠的狀況,提高網(wǎng)站的響應速度

2 使用DNS預解析
當瀏覽器訪問一個域名的時候,需要解析一次DNS,獲得對應域名的ip地址,在解析過程中,按照瀏覽器緩存、系統(tǒng)緩存、路由器換算、DNS緩存、域名服務器的順序,逐步讀取緩存,直到拿到ip地址

3 持久連接
使用keep-alive或者persistent來建立持久連接,降低了延時和連接建立的開銷

十、優(yōu)化資源加載

1 資源加載位置
通過優(yōu)化資源加載位置,更改資源加載時機,使盡可能快地展示出頁面內(nèi)容,盡可能快地使用功能可用

2 資源加載時機
3.異步script標簽
defer:異步加載,在html解析完成后執(zhí)行。defer的實際效果與將代碼放在body底部類似
async:異步加載,加載完成后立即執(zhí)行
4.模塊按需加載

5.使用資源預加載preload和資源預讀取prefetch
preload讓瀏覽器提前加載指定資源,需要執(zhí)行時候再執(zhí)行,可以加快當前頁面的加載速度
prefetch告訴瀏覽器加載下一個頁面可能會用到的資源,可以加速下一個頁面的加載速度

6.資源懶加載與資源預加載(錯峰操作)
資源延遲加載也稱為資源懶加載,延遲加載資源或符合某些條件的時候才加載某些資源
資源預加載是提前加載用戶所需的資源,保證良好的用戶體驗
資源懶加載和資源預加載都是一種錯峰操作,在瀏覽器忙碌的時候不能操作,瀏覽器空閑的時候再加載資源,優(yōu)化了網(wǎng)絡性能

十一**、**減少重繪回流

十二**、**用對選擇器

id選擇器選擇元素是最快的

十三**、**不濫用WEB字體

WEB字體需要下載、解析、重繪當前頁面,盡量減少使用。

十四**、**選用性能更好的api

十五、使用web worker

Web Worker是HTML5提供的一個javascript多線程解決方案,可以將一些大計算量的代碼交由web Worker運行,從而避免阻塞用戶界面,在執(zhí)行復雜計算和數(shù)據(jù)處理時,這個API非常有用。但是,要注意其瀏覽器兼容性。

十六**、**減少重定向

盡量避免使用重定向,當頁面發(fā)生了重定向,就會延遲整個HTML文檔的傳輸。在HTML文檔到達之前,頁面中不會呈現(xiàn)任何東西,也沒有任何組件會被下載,降低了用戶體驗

如果一定要使用重定向,如http重定向到https,要使用301永久重定向,而不是302臨時重定向。因為,如果使用302,則每一次訪問http,都會被重定向到https的頁面。而永久重定向,在第一次從http重定向到https之后 ,每次訪問http,會直接返回https的頁面

十七、開啟Gzip(代碼壓縮)

Gzip即數(shù)據(jù)壓縮,前端生產(chǎn)環(huán)境中將js、css、圖片等文件進行壓縮,通過減少數(shù)據(jù)傳輸量減小傳輸時間,節(jié)省服務器網(wǎng)絡帶寬,提高前端性能。

十八、事件代理(事件委托)

事件代理的原理是DOM元素的事件冒泡

  1. 可以大量節(jié)省內(nèi)存占用,減少事件注冊,比如在table上代理所有td的click事件就非常棒
  2. 可以實現(xiàn)當新增子對象時無需再次對其綁定

十九、防抖和節(jié)流

使用函數(shù)節(jié)流(throttle)或函數(shù)去抖(debounce),限制某一個方法的頻繁觸發(fā)

二十、webpack優(yōu)化

【打包公共代碼】

使用CommonsChunkPlugin插件,將公共模塊拆出來,最終合成的文件能夠在最開始的時候加載一次,便存到緩存中供后續(xù)使用。這會帶來速度上的提升,因為瀏覽器會迅速將公共的代碼從緩存中取出來,而不是每次訪問一個新頁面時,再去加載一個更大的文件

webpack 4 將移除 CommonsChunkPlugin, 取而代之的是兩個新的配置項 optimization.splitChunks 和 optimization.runtimeChunk

通過設置 optimization.splitChunks.chunks: “all” 來啟動默認的代碼分割配置項

【動態(tài)導入和按需加載】

webpack提供了兩種技術通過模塊的內(nèi)聯(lián)函數(shù)調(diào)用來分離代碼,優(yōu)先選擇的方式是,使用符合 ECMAScript 提案 的 import() 語法。第二種,則是使用 webpack 特定的 require.ensure

【剔除無用代碼】

tree shaking 是一個術語,通常用于描述移除 JavaScript 上下文中的未引用代碼(dead-code)。它依賴于 ES2015 模塊系統(tǒng)中的靜態(tài)結構特性,例如 import 和 export。這個術語和概念實際上是興起于 ES2015 模塊打包工具 rollup

JS的tree shaking主要通過uglifyjs插件來完成,CSS的tree shaking主要通過purify CSS來實現(xiàn)的

【長緩存優(yōu)化】

1、將hash替換為chunkhash,這樣當chunk不變時,緩存依然有效

2、使用Name而不是id

每個 module.id 會基于默認的解析順序(resolve order)進行增量。也就是說,當解析順序發(fā)生變化,ID 也會隨之改變

下面來使用兩個插件解決這個問題。第一個插件是 NamedModulesPlugin,將使用模塊的路徑,而不是數(shù)字標識符。雖然此插件有助于在開發(fā)過程中輸出結果的可讀性,然而執(zhí)行時間會長一些。第二個選擇是使用 HashedModuleIdsPlugin,推薦用于生產(chǎn)環(huán)境構建

【公用代碼內(nèi)聯(lián)】

使用html-webpack-inline-chunk-plugin插件將mainfest.js內(nèi)聯(lián)到html文件中

【縮小構建目標,排除 Webpack 不需要解析的模塊】

排除 Webpack 不需要解析的模塊。即使用 loader 的時候,在盡量少的模塊中去使用。我們可以借助 include 和 exclude 這兩個參數(shù),規(guī)定 loader 只在那些模塊應用和在哪些模塊不應用。文章來源地址http://www.zghlxwxcb.cn/news/detail-581185.html

到了這里,關于常見前端項目性能優(yōu)化方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 前端項目中CDN的一些問題【性能優(yōu)化篇】

    前端項目中CDN的一些問題【性能優(yōu)化篇】

    CDN(Content Delivery NetWork, 內(nèi)容分發(fā)網(wǎng)絡 ),是指 利用最靠近每位用戶的服務區(qū) ,更快的將資源發(fā)送給用戶。 提高用戶的訪問速度 減輕服務器壓力 提高網(wǎng)站的穩(wěn)定性和安全性 CDN一般用來托管Web資源(文本、圖片和視頻等),可供下載的資源,應用程序。使用CDN來加速這些

    2024年02月03日
    瀏覽(90)
  • nodejs項目實戰(zhàn)教程01——http服務和URL類,前端開發(fā)社招面試解答之性能優(yōu)化

    nodejs項目實戰(zhàn)教程01——http服務和URL類,前端開發(fā)社招面試解答之性能優(yōu)化

    需要在終端重新執(zhí)行一次node app.js瀏覽器的內(nèi)容才會刷新 4.如何獲取url中的參數(shù) ============================================================================ 4.1 URL類基礎 建議大家可以先看看Node.js API文檔中的url 網(wǎng)址部分,這里做簡要說明。url字符串在nodejs的url模塊,有兩種解析API,其中舊版的

    2024年04月11日
    瀏覽(27)
  • vue - 常見的性能優(yōu)化

    vue - 常見的性能優(yōu)化

    1, v-for 遍歷避免同時使用 v-if 在 Vue2 中 v-for 優(yōu)先級更高,所以編譯過程中會把列表元素全部遍歷生成虛擬 DOM,再來通過 v-if 判斷符合條件的才渲染,就會有多余的邏輯判斷和造成性能的浪費,因為我們希望的是不符合條件的虛擬 DOM都不要生成; 1,為了過濾一個列表中的項

    2024年02月16日
    瀏覽(19)
  • 前端面試:【性能優(yōu)化】頁面加載性能、渲染性能、資源優(yōu)化

    嗨,親愛的前端開發(fā)者!在今天的Web世界中,用戶期望頁面加載速度快、交互流暢。因此,前端性能優(yōu)化成為了至關重要的任務。本文將探討三個關鍵方面的性能優(yōu)化:頁面加載性能、渲染性能以及資源優(yōu)化,以幫助你構建更快速、響應更快的Web應用程序。 1. 頁面加載性能:

    2024年02月11日
    瀏覽(33)
  • 【Redis 神秘大陸】005 常見性能優(yōu)化方式

    【Redis 神秘大陸】005 常見性能優(yōu)化方式

    https://github.com/sohutv/cachecloud/blob/main/redis-ecs/script/cachecloud-init.sh 5.2.1 維度化緩存 在電商系統(tǒng)中,一個商品可能包含多個維度的數(shù)據(jù),如基礎屬性、圖片列表、上下架狀態(tài)、規(guī)格參數(shù)、商品介紹等。針對這種情況,可以采用維度化緩存方案進行優(yōu)化,以減少更新成本和服務壓力

    2024年04月17日
    瀏覽(26)
  • NAND系統(tǒng)性能提升常見方案

    NAND系統(tǒng)性能提升常見方案

    隨著NAND的發(fā)展,針對NAND系統(tǒng)性能提升,業(yè)內(nèi)目前主要的做法有以下幾種方案: 1.提升總線頻率和優(yōu)化AC時序: 提高NAND閃存接口的工作頻率可以顯著加快數(shù)據(jù)傳輸速度 。通過不斷改進工藝和技術,縮短了信號穩(wěn)定時間、降低了延遲,從而在單位時間內(nèi)傳輸更多比特的數(shù)據(jù)。

    2024年01月21日
    瀏覽(19)
  • 常見JVM參數(shù)配置和GC性能優(yōu)化

    常見的JVM參數(shù)配置 垃圾回收統(tǒng)計信息 -XX:+PrintGC ? ? 打印GC簡要信息 -XX:+PrintGCDetails打印GC的詳細信息 -XX:+PrintGCTimeStamps打印CG發(fā)生的時間戳 -Xloggc:log/gc.log 指定GC log的位置,以文件輸出 -XX:+PrintHeapAtGC 每一次GC前和GC后,都打印堆信息。 堆設置 -Xms:初始堆大,最小堆 -Xmx:最大

    2024年02月16日
    瀏覽(24)
  • 性能優(yōu)化 - 前端性能監(jiān)控和性能指標計算方式

    性能優(yōu)化 - 前端性能監(jiān)控和性能指標計算方式

    利用LightHouse進行合理的頁面性能優(yōu)化 這篇文章主要講解了如何使用 Lighthouse 。 這里把相關圖片再展示一下: 我們可以看到 Lighthouse 計算的時候,會根據(jù)這幾個維度的指標來計算總分。那么本篇文章,就主要講解下前端性能監(jiān)控相關的重要指標含義和計算方式。 在介紹指標

    2024年02月15日
    瀏覽(25)
  • 前端--性能優(yōu)化【上篇】--網(wǎng)絡優(yōu)化與頁面渲染優(yōu)化

    link標簽的rel屬性設置dns-prefetch,提前獲取域名對應的IP地址 用戶與服務器的物理距離對響應時間也有影響。 內(nèi)容分發(fā)網(wǎng)絡(CDN)是一組分散在不同地理位置的 web 服務器,用來給用戶更高效地發(fā)送內(nèi)容。典型地,選擇用來發(fā)送內(nèi)容的服務器是基于網(wǎng)絡距離的衡量標準的。 優(yōu)

    2024年02月08日
    瀏覽(19)
  • iOS 性能優(yōu)化方案-弱網(wǎng)優(yōu)化

    iOS 性能優(yōu)化方案-弱網(wǎng)優(yōu)化

    選擇現(xiàn)有網(wǎng)絡狀態(tài) 或自定義網(wǎng)絡狀態(tài) 設置參數(shù): 每個參數(shù)的含義大致如下: in bandwidth?:下行帶寬 in packet loss?:下行丟包率 in delay?:下行延遲(ms) out bandwidth?:上行帶寬 out packet loss?:上行丟包率 out delay?:上行延遲 DNS delay?:DNS解析延遲,這個功能安卓不知道怎么模擬

    2024年02月09日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包