2020AV天堂网,午夜色色视频,美女黄片免费观看,欧美黄色电影网站,亚洲人在线

新聞資訊

新聞資訊

網(wǎng)站性能優(yōu)化有哪些(前端的性能優(yōu)化有哪些)

時(shí)間:2023-11-09 信途科技新聞資訊

本人已經(jīng)過(guò)原作者制授權(quán)翻譯。

在這篇文章中,主要介紹10種快速提高網(wǎng)站性能的方法,你只需5分鐘內(nèi)就可以將它應(yīng)用到你的網(wǎng)站上,廢話不多說(shuō),讓我們進(jìn)入正題吧 。

1. 文件壓縮

文件壓縮,可以減少網(wǎng)絡(luò)傳輸?shù)淖止?jié)數(shù)。有幾種壓縮算法。Gzip是最流行的,但是對(duì)于Brotli,你可以使用一種更新的、甚至更好的壓縮算法。如果想檢查您的服務(wù)器是否支持Brotli,可以使用 Brotli.pro。

如果你的服務(wù)器不支持Brotli,則可以按照以下簡(jiǎn)單指南進(jìn)行安裝 :

Nginx on LinuxApacheNodeJs - Express2. 圖像壓縮

未壓縮的圖像是一個(gè)巨大的潛在性能瓶頸。如果在將圖像提供給用戶之前沒(méi)有壓縮它們,那么就會(huì)傳輸不必要的字節(jié)。有幾個(gè)有用的工具可以用于快速壓縮圖像且不損失可見(jiàn)質(zhì)量。我主要使用Imagemin。它支持許多圖像格式,您w你以將其用作命令行界面或npm模塊。

imagemin img/* --out-dir=dist/images

你還可以 將npm 引入到項(xiàng)目里,使用imagemin-mozjpeg,可以將JPEG圖像壓縮到原有的60%:

const imagemin = require('imagemin');const imageminMozjpeg = require('imagemin-mozjpeg');(async() => {  const files = await imagemin(      ['img/*.jpg'],      {        destination: 'dist/img',        plugins: [          imageminMozjpeg({quality: 60}),        ]      }  );  console.log(files);})();

就我而言,它將文件大小從4MB減小到100kB:

3.圖像格式

使用現(xiàn)代圖像格式可以真正提高性能。WebP 圖像比 JPEG 和 PNG 小,通常小25%-35%。WebP 也被瀏覽器廣泛支持。

我們使用imagemin npm 包并為其添加WebP插件。以下代碼將我的圖像的WebP版本輸出到dist文件夾中。

const imagemin = require('imagemin');const imageminWebp = require('imagemin-webp');(async() => {  const files = await imagemin(      ['img/*.jpg'],      {        destination: 'dist/img',        plugins: [          imageminWebp({quality: 50})        ]      }  );  console.log(files);})();

我們?cè)俅慰匆幌挛募笮。?/p>

結(jié)果表明,與原始圖像相比,文件大小減少了98%,與壓縮的 JPG 文件相比,WebP 對(duì)圖像的壓縮效果更加明顯,WebP版本比壓縮的JPEG版本小43%。

4.圖像延遲加載

延遲加載圖像是一種稍后而不是提前加載屏幕外圖像的技術(shù)。當(dāng)解析器遇到正確加載的圖像時(shí),會(huì)減慢初始頁(yè)面加載速度。通過(guò)延遲加載,可以加快這個(gè)過(guò)程并在以后加載圖像。使用lazysize很容易做到這一點(diǎn)。使用lazysize腳本和瀏覽器對(duì)loading屬性的支持,你可以這樣優(yōu)化:

<img src="image.jpg" alt="">

改成:

<img data-src="image.jpg" class="lazyload" alt="">

該庫(kù)會(huì)處理其余的工作,你可以使用瀏覽器驗(yàn)證這一點(diǎn)。打開(kāi)你的網(wǎng)站,找到你的圖像標(biāo)簽。如果類從lazyload更改為lazyloaded,它就可以工作。

5.緩存 http 頭

緩存是一種快速提高站點(diǎn)速度的方法。它減少了訪問(wèn)者的頁(yè)面加載時(shí)間。我們可以告訴瀏覽器在特定的時(shí)間緩存文件,如果你對(duì)后臺(tái)的知識(shí)有些了解,那么配置緩存方不是很難的事情。

我們可以使用以下 API 進(jìn)行緩存:

Cache-ControlETagLast-Modified6. 內(nèi)聯(lián)關(guān)鍵的 CSS

CSS 是阻塞渲染的,這意味著瀏覽器必須先下載并處理所有CSS文件,然后才能繪制像素。通過(guò)內(nèi)聯(lián)關(guān)鍵的 CSS,可以大大加快此過(guò)程。我們可以通過(guò)以下步驟完成此操作:

識(shí)別關(guān)鍵的 CSS

如果你不知道你的關(guān)鍵CSS是什么,你可以使用Critcal, CriticalCSS或Penthouse。所有這些庫(kù)都從給定視口可見(jiàn)的HTML文件中提取CSS。

criticalCSS 事例如下:

var criticalcss = require("criticalcss");var request = require('request');var path = require( 'path' );var criticalcss = require("criticalcss");var fs = require('fs');var tmpDir = require('os').tmpdir();var cssUrl = 'https://web.dev/app.css';var cssPath = path.join( tmpDir, 'app.css' );request(cssUrl).pipe(fs.createWriteStream(cssPath)).on('close', function() {  criticalcss.getRules(cssPath, function(err, output) {    if (err) {      throw new Error(err);    } else {      criticalcss.findCritical("https://web.dev/", { rules: JSON.parse(output) }, function(err, output) {        if (err) {          throw new Error(err);        } else {          console.log(output);          // save this to a file for step 2        }      });    }  });});內(nèi)聯(lián)關(guān)鍵 CSS

HTML解析器遇到樣式標(biāo)簽,并立即處理關(guān)鍵的CSS。

<head>  <style>  body {...}  /* ... rest of the critical CSS */  </style></head>滯后非關(guān)鍵CSS

非關(guān)鍵的CSS不需要立即進(jìn)行處理。瀏覽器可以在onload事件之后加載它,因此用戶不必等待。

<link rel="preload" href="/assets/styles.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="/assets/styles.css"></noscript>7. JavaScript 異步/延遲加載/延遲加載

HTML 也是阻塞渲染,瀏覽器必須等待 JS 執(zhí)行后才能完成對(duì)HTML的解析。但是我們可以告訴瀏覽器等待JavaScript執(zhí)行。

異步加載JavaScript

使用屬性async,可以告訴瀏覽器異步加載腳本。

<script src="app.js" async></script>延遲JavaScript

defer屬性告訴瀏覽器在 HTML 解析器解析完文檔之后運(yùn)行腳本,但在事件發(fā)生之前,DOMContentLoaded會(huì)被觸發(fā)。

<script src="app.js" defer></script>重復(fù)排序內(nèi)聯(lián)的腳本

內(nèi)聯(lián)腳本立即執(zhí)行,瀏覽器對(duì)其進(jìn)行解析。因此,您可以將它們放在HTML的末尾,緊接在body標(biāo)記之前。

8.使用資源提示優(yōu)化性能

HTML5的資源提示(Resource Hints)可以簡(jiǎn)單地理解為預(yù)加載,瀏覽器根據(jù)開(kāi)發(fā)者提供的后續(xù)資源的提示進(jìn)行有選擇性的加載和優(yōu)化?!坝羞x擇性”這一項(xiàng)是必須的且極其重要的,也是有別早先替代方案的重點(diǎn),因?yàn)楹芏嗲闆r下,預(yù)加載會(huì)受到所分配到的計(jì)算資源以及帶寬資源的限制,瀏覽器有權(quán)放棄那些成本較高的加載項(xiàng)。

資源提示幫助開(kāi)發(fā)人員告訴瀏覽器稍后可能加載的頁(yè)面。該規(guī)范定義了四種原語(yǔ)

preconnectdns-prefetchprefetchprerender

此外,對(duì)于資源提示,我們使用了鏈接屬性的preload關(guān)鍵字。

preconnect

預(yù)鏈接, 使用方法如下:

 <link rel="preconnect" href="https://example.com">

我們?cè)L問(wèn)一個(gè)站點(diǎn)時(shí),簡(jiǎn)單來(lái)說(shuō),都會(huì)經(jīng)過(guò)以下的步驟:

DNS 解析TCP 握手如果為 Https 站點(diǎn),會(huì)進(jìn)行TLS握手

使用preconnect后,瀏覽器會(huì)針對(duì)特定的域名,提前初始化鏈接(執(zhí)行上述三個(gè)步驟),節(jié)省了我們?cè)L問(wèn)第三方資源的耗時(shí)。需要注意的是,我們一定要確保preconnect的站點(diǎn)是網(wǎng)頁(yè)必需的,否則會(huì)浪費(fèi)瀏覽器、網(wǎng)絡(luò)資源。

DNS Prefetch

DNS 預(yù)解析, 這個(gè)大多數(shù)人都知道,用法也很簡(jiǎn)單:

 <link rel="dns-prefetch" href="http://example.com">

DN S解析,簡(jiǎn)單來(lái)說(shuō)就是把域名轉(zhuǎn)化為ip地址。我們?cè)诰W(wǎng)頁(yè)里使用域名請(qǐng)求其他資源的時(shí)候,都會(huì)先被轉(zhuǎn)化為ip地址,再發(fā)起鏈接。dns-prefeth使得轉(zhuǎn)化工作提前進(jìn)行了,縮短了請(qǐng)求資源的耗時(shí)。

什么時(shí)候使用呢?當(dāng)我們頁(yè)面中使用了其他域名的資源時(shí),比如我們的靜態(tài)資源都放在cdn上,那么我們可以對(duì)cdn的域名進(jìn)行預(yù)解析。瀏覽器的支持情況也不錯(cuò)。

prefetch

預(yù)拉取, 使用方法如下:

<link rel="prefetch" href="index.html" as="document"><link rel="prefetch" href="main.js" as="script"><link rel="prefetch" href="main.css" as="style"><link rel="prefetch" href="font.woff" as="font"><link rel="prefetch" href="image.webp" as="image">

link標(biāo)簽里的as參數(shù)可以有以下取值:

audio: 音頻文件video: 視頻文件  Track: 網(wǎng)絡(luò)視頻文本軌道 script: javascript文件style: css樣式文件font: 字體文件   image: 圖片   fetch: XHR、Fetch請(qǐng)求worker: Web workersembed: 多媒體<embed>請(qǐng)求 object:  多媒體<object>請(qǐng)求document: 網(wǎng)頁(yè)

預(yù)拉取用于標(biāo)識(shí)從當(dāng)前網(wǎng)站跳轉(zhuǎn)到下一個(gè)網(wǎng)站可能需要的資源,以及本網(wǎng)站應(yīng)該獲取的資源。這樣可以在將來(lái)瀏覽器請(qǐng)求資源時(shí)提供更快的響應(yīng)。

如果正確使用了預(yù)拉取,那么用戶在從當(dāng)前頁(yè)面前往下一個(gè)頁(yè)面時(shí),可以很快得到響應(yīng)。但是如果錯(cuò)誤地使用了預(yù)拉取,那么瀏覽器就會(huì)下載額外不需要的資源,影響頁(yè)面性能,并且造成網(wǎng)絡(luò)資源浪費(fèi)。

這里需要注意的是,使用了prefetch,資源僅僅被提前下載,下載后不會(huì)有任何操作,比如解析資源。

prerender

預(yù)渲染,使用方法如下:

<link rel="prerender" href="//example.com/next-page.html">

prerender比prefetch更進(jìn)一步。不僅僅會(huì)下載對(duì)應(yīng)的資源,還會(huì)對(duì)資源進(jìn)行解析。解析過(guò)程中,如果需要其他的資源,可能會(huì)直接下載這些資源。這樣,用戶在從當(dāng)前頁(yè)面跳轉(zhuǎn)到目標(biāo)頁(yè)面時(shí),瀏覽器可以更快的響應(yīng)。

preload<link rel="preload" href="..." as="..."><link rel="prefetch" href="...">

注意preload需要寫上正確的as屬性,才能正常工作喔(prefetch不需要)。但是它們有什么區(qū)別呢?

preload 是用于預(yù)加載當(dāng)前頁(yè)的資源,瀏覽器會(huì)優(yōu)先加載它們prefetch 是用于預(yù)加載后續(xù)導(dǎo)航使用的資源,瀏覽器也會(huì)加載它們,但優(yōu)先級(jí)不高9. 固定好你的谷歌字體

Google字體很棒,它們提供優(yōu)質(zhì)的服務(wù),并被廣泛使用。如果你不想自己托管字體,那么Google字體是一個(gè)不錯(cuò)的選擇。你需要的是學(xué)習(xí)如何引用它們,哈里·羅伯茨(Harry Roberts)寫了一篇有關(guān)《The Fastest Google Fonts》的出色深度文章。強(qiáng)烈建議你閱讀它。

如果你快速取用,那么可以使用下面集成片段的谷歌字體:

<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=...&display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=...&display=swap" media="print" onload="this.media='all'"/><noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=...&display=swap"/></noscript>10. 使用 service worker 緩存資源

service worker是瀏覽器在后臺(tái)運(yùn)行的腳本。緩存可能是最常用的特性,也是你應(yīng)該使用的特性。我認(rèn)為這不是一個(gè)選擇的問(wèn)題。通過(guò)使用 service worker實(shí)現(xiàn)緩存,可以使 用戶 與站點(diǎn)的交互更快,并且即使用戶不在線也可以訪問(wèn)站點(diǎn)。

總結(jié)

在這篇文章中,展示了 10 種快速的網(wǎng)絡(luò)性能,你可以在5分鐘內(nèi)應(yīng)用到你的網(wǎng)站,以提高你的網(wǎng)站速度。

作者:Marc 譯者:前端小智 來(lái)源:dev

原文:https://dev.to/marcradziwill/10-web-performance-quick-wins-you-can-and-should-apply-in-under-5-minutes-1dj2

今天給到大家福利是《服務(wù)器知識(shí)及 Node 系列視頻教程》,領(lǐng)取方式,轉(zhuǎn)發(fā)+點(diǎn)贊,私信我 “服務(wù)器”即可免費(fèi)獲取。

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長(zhǎng)刪除。

轉(zhuǎn)載請(qǐng)注明出處http://www.quickersubmitter.com/xintu/11831.html

相關(guān)文章

廣告返點(diǎn),廣告返點(diǎn)是什么意思

信息流返點(diǎn)怎么算所謂的返點(diǎn)屬于代理商給予廣告主的一種優(yōu)惠,返點(diǎn)多少,優(yōu)惠多少,具體得看具體的代理商。非企開(kāi)戶另一個(gè)優(yōu)勢(shì)是返點(diǎn)高,往往通過(guò)渠道開(kāi)通的非企戶,返點(diǎn)都比較高!例如:廣告主打款充值10000,...

網(wǎng)絡(luò)營(yíng)銷實(shí)戰(zhàn)總結(jié)(網(wǎng)絡(luò)營(yíng)銷實(shí)務(wù)總結(jié))

網(wǎng)絡(luò)營(yíng)銷實(shí)戰(zhàn)總結(jié)(網(wǎng)絡(luò)營(yíng)銷實(shí)務(wù)總結(jié))

實(shí)戰(zhàn)干貨分享,常說(shuō)的網(wǎng)絡(luò)營(yíng)銷,到底怎么去做網(wǎng)絡(luò)營(yíng)銷 1、做好網(wǎng)絡(luò)營(yíng)銷的方法包括勤奮推廣、主動(dòng)性要強(qiáng)、信息面要廣泛、持久性的堅(jiān)持等。勤奮推廣:在推廣階段要適時(shí)關(guān)注對(duì)方或者你所需要的客戶的信息,這樣有助于...

網(wǎng)絡(luò)營(yíng)銷推廣平臺(tái)影響力(明星在網(wǎng)絡(luò)營(yíng)銷中的影響力和號(hào)召力)

高效的原則為會(huì)議做好網(wǎng)絡(luò)營(yíng)銷推廣云網(wǎng)客目前在地產(chǎn)行業(yè)影響力并不限于此,許多知名地產(chǎn)商也選擇云網(wǎng)客作為網(wǎng)絡(luò)營(yíng)銷推廣。網(wǎng)絡(luò)營(yíng)銷平臺(tái)的選擇如果你有產(chǎn)品沒(méi)有流量,或者沒(méi)產(chǎn)品項(xiàng)目做的,以及想要學(xué)習(xí)當(dāng)下互聯(lián)網(wǎng)最新...

網(wǎng)站的優(yōu)化前端(前端優(yōu)化性能面試題)

Web的Email客戶端中,用戶必須等待 Ajax返回符合他們條件的郵件查詢結(jié)果記住一點(diǎn),“異步”并不異味著“即時(shí)”,這很重要 為了提高性能,優(yōu)化 Ajax。前端的優(yōu)化往往能起到事半功倍的作用雅虎最近...

關(guān)鍵詞影響排名嗎(關(guān)鍵詞排名優(yōu)化)

應(yīng)該為每個(gè)關(guān)鍵詞創(chuàng)建一個(gè)網(wǎng)站并鏈接到我的主站點(diǎn)嗎?我們認(rèn)為擁有多個(gè)針對(duì)特定關(guān)鍵詞的網(wǎng)站對(duì)于大多數(shù)公司來(lái)說(shuō)是一個(gè)非常糟糕的策略。將您的網(wǎng)絡(luò)資源整合到一個(gè)超級(jí)強(qiáng)大的網(wǎng)站開(kāi)始幾乎總是更好,您可以在其中推動(dòng)所...

黃陂網(wǎng)站優(yōu)化推廣(優(yōu)化網(wǎng)站排名嘉衛(wèi)cj111602推廣)

net,ios,SEO,網(wǎng)站優(yōu)化,平面設(shè)計(jì),網(wǎng)站運(yùn)營(yíng),網(wǎng)絡(luò)推廣,品牌專員。3企業(yè)產(chǎn)品網(wǎng)站或服務(wù)網(wǎng)站維護(hù),優(yōu)化,網(wǎng)站推廣,搜索引擎優(yōu)化4通過(guò)網(wǎng)絡(luò)平臺(tái)與客戶交流,負(fù)責(zé)公司網(wǎng)絡(luò)營(yíng)銷相關(guān)產(chǎn)品和服務(wù)。 3負(fù)責(zé)店...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費(fèi)
    效果付費(fèi)

    先出效果再付費(fèi)

  • 極速交付
    極速交付

    響應(yīng)速度快,有效節(jié)省客戶時(shí)間

  • 1對(duì)1服務(wù)
    1對(duì)1服務(wù)

    專屬客服對(duì)接咨詢

  • 持續(xù)更新
    持續(xù)更新

    不斷升級(jí)維護(hù),更好服務(wù)用戶