国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > CSS > 正文

CSS 的加載及加載順序簡介

2024-07-11 09:07:58
字體:
來源:轉載
供稿:網友

前言

關于前端css性能優化,網上很多類似文章,我之前也寫過,《 網站前端性能優化之javascript和css 》,感興趣的可以去看下。今天我們舊事重提,再來談談css的加載,及加載順序。

通常的css加載順序

一般情況下,我們css樣式表是放在頭部,同時為了減少請求,我們通常對css進行一個合并壓縮。 目前我們css一般是如下加載的:

<head>  <link rel="stylesheet" href="/all-of-my-styles.css"></head><body>  …content…</body>

這樣可以,但是有幾個性能問題,我們可以繼續優化:

問題:

所有的css都合并壓縮成一個文件,放在頁面頭部加載。可能首屏我們僅僅用到一點點css,卻在頭部加載了所有的css,造成資源的不合理加載和浪費。假如css很大,嚴重影響網頁加載速度和首屏顯示速度。

換個思路

假如不合并,單個css壓縮引用,文件大小是小了,但是請求數量多了一些。 權衡二者,并且進行性能測試對比,發現如下寫法確實比我們所有css放在頭部一次性加載,首屏顯示速度要快些:

<head></head><body>  <!-- HTTP/2 push this resource, or inline it, whichever's faster -->  <link rel="stylesheet" href="/site-header.css">  <header>…</header>  <link rel="stylesheet" href="/article.css">  <main>…</main>  <link rel="stylesheet" href="/comment.css">  <section class="comments">…</section>  <link rel="stylesheet" href="/about-me.css">  <section class="about-me">…</section>  <link rel="stylesheet" href="/site-footer.css">  <footer>…</footer></body>

但是還是有性能可以優化的地方!

例如:

我們首屏僅僅顯示了頭部和文章,其他模塊首屏不顯示。那么,其他模塊的css我們可以完全異步來加載。如何異步加載呢?

請看下面

loadCSS 及 Preload

關于preload,推進2篇文章給大家看下:

1、通過rel="preload"進行內容預加載: https://developer.mozilla.org/zh-CN/docs/Web/HTML/Preloading_content

2、preload 的w3文檔: https://www.w3.org/TR/preload/

對于一些不是首屏加載的css,我們可以如下寫法:

<link rel="preload" href="path/to/haorooms.css" as="style" onload="this.rel='stylesheet'">

防止瀏覽器禁止js,保險起見,也可以如下:

<link rel="preload" href="path/to/haorooms.css" as="style" onload="this.rel='stylesheet'"><noscript><link rel="stylesheet" href="path/to/haorooms.css"></noscript>

為了避免有些瀏覽器會重新調用處理程序rel='stylesheet'這個屬性,我們一般推薦如下寫法:

<link rel="preload" href="path/to/haorooms.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="path/to/haorooms.css"></noscript>

為了更好的兼容rel=preload,可以使用loadCSS ,github地址: https://github.com/filamentgroup/loadCSS

因此, 不考慮瀏覽器兼容問題的情況下 (考慮兼容問題,可以使用loadCss,這里不多演示),我們對上面代碼再次進行優化:

<head>  <link rel="stylesheet" href="/首屏加載css.css">  <link rel="preload" href="/不是首屏加載的css.css" as="style" onload="this.onload=null;this.rel='stylesheet'"></head><body>  <header>…</header>  <main>…</main>  <section class="comments">…</section>  <section class="about-me">…</section>  <footer>…</footer></body>

PS:下面看下關于html,css,js三者的加載順序問題

<head lang="en">    <meta charset="utf-8">    <title></title>    <link rel="stylesheet" href="css/*.css">    <script src="js/*.js></script></head>

DOM文檔的加載順序是由上而下的順序加載;

1、DOM加載到link標簽

css文件的加載是與DOM的加載并行的,也就是說,css在加載時Dom還在繼續加載構建,而過程中遇到的css樣式或者img,則會向服務器發送一個請求,待資源返回后,將其添加到dom中的相對應位置中;

2、DOM加載到script標簽

由于js文件不會與DOM并行加載,因此需要等待js整個文件加載完之后才能繼續DOM的加載,倘若js腳本文件過大,則可能導致瀏覽器頁面顯示滯后,出現“假死”狀態,這種效應稱之為“阻塞效應”;會導致出現非常不好的用戶體驗;

而這個特性也是為什么在js文件中開頭需要$(document).ready(function(){})或者(function(){})或者window.onload,即是讓DOM文檔加載完成之后才執行js文件,這樣才不會出現查找不到DOM節點等問題;

js阻塞其他資源的加載的原因是:瀏覽器為了防止js修改DOM樹,需要重新構建DOM樹的情況出現;

3、解決方法

前提,js是外部腳本;

在script標簽中添加 defer=“ture”,則會讓js與DOM并行加載,待頁面加載完成后再執行js文件,這樣則不存在阻塞;

在scirpt標簽中添加 async=“ture”,這個屬性告訴瀏覽器該js文件是異步加載執行的,也就是不依賴于其他js和css,也就是說無法保證js文件的加載順序,但是同樣有與DOM并行加載的效果;

同時使用defer和async屬性時,defer屬性會失效;

可以將scirpt標簽放在body標簽之后,這樣就不會出現加載的沖突了。

總結

以上所述是小編給大家介紹的CSS 的加載及加載順序簡介,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到CSS教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
最近最好的中文字幕2019免费 | 国产精品99999| 亚洲国产成人综合| gogogogo高清视频在线| www.蜜桃av| 九色福利视频| 91在线网站| 欧美性猛交xxxx免费看久久| 开心婷婷激情五月| 国产农村av| 国产精品合集一区二区| 亚洲欧美自拍另类| 成在在线免费视频| 中文字幕日本三级| av日韩在线免费| 九九在线免费视频| 国产日产一区二区| 欧美日韩在线精品成人综合网| 蜜桃视频网站在线| 国产精品视频一区二区久久 | 国产精品久久人| 影音先锋在线中文字幕| 中文字幕视频在线| 久久五月精品| gogo在线高清视频| 伊人精品影院| 中中文字幕av在线| av中文资源在线| 国产在线黄色片| av手机免费观看| 国产精品18久久久久久久久久| 在线观看电影av| 国产系列电影在线播放网址| 欧美性猛交xxxx免费看蜜桃| 国产porny蝌蚪视频| 国产精品一二三区视频| 日本免费不卡| 欧美色第一页| gogogogo高清视频在线| 国产黄色av免费看| 国产激情小视频在线| 成年人在线观看| 四虎久久影院| 在线观看免费视频一区二区三区| 中文字幕专区| 国产麻豆一区二区三区精品| 青青国产在线| 欧美啪啪精品| xxxxx中文字幕| 日本在线天堂| 欧美啪啪精品| 午夜国产视频| 国产网站av| 在线中文字幕第一页| 国产激情在线| 午夜影院免费| 免费不卡中文字幕视频| 日本啊v在线| 99爱视频在线观看| 四虎成人免费| 九九热在线视频| 天天爱天天做色综合| 最近最好的中文字幕2019免费 | 国产在线观看18| 国产日韩网站| 在线视频中文字幕第一页| 国产99在线|亚洲| 亚洲精品在线播放视频| 人成在线免费视频| 中文字幕av中文字幕| 国产一级黄色大片| 亚洲最新永久观看在线| 九九在线观看免费视频| 国产网站免费看| 99久久精品免费观看国产| 欧美精品久久久久久久小说| 最近中文av字幕在线中文| 国产99在线|亚洲| 国产在线传媒| 伊人影院蕉久影院在线播放| 午夜在线观看91| 免费精品国产自产拍在| 国产极品嫩模在线视频一区| 亚洲妇熟xxxx妇色黄| 国产一区二区三区福利| av日韩国产| 中文乱码字幕av网站| 国产卡一卡二卡三| 在线观看免费观看在线91| 最近中文字幕mv免费高清电影| 伊人影院在线视频| 国产日韩网站| 国产嫩草在线视频| 久久综合第一页| 香蕉视频在线看| 国产区成人精品视频| 蜜桃视频网站在线| 亚洲私人影吧| 中文资源在线网| 中文字幕视频在线观看| 久久国产精品久久久久久小说| 精品极品三级久久久久| 国产黄色在线| 精品国产免费第一区二区| 国产精品黄页网站在线播放免费| 天天av天天爱| 国产网红在线观看| 国产人成网在线播放va免费| 国产中文在线| 欧美日韩久久中文字幕| 亚洲91av| 男女午夜视频在线观看| 亚洲国产aⅴ精品| 亚洲精品影院在线| 日本电影在线观看| 免费看的毛片| 国产小视频在线| 国产激情视频网址| 在线中文av| 国产中文字幕网| 国产一级性片| 中文字幕av高清在线观看| 永久免费网站在线| 久久亚洲国产成人亚| 中文字幕国产在线| 91青青在线视频| 免费看成年人视频在线观看| 欧美国产中文| 精品国产美女福利到在线不卡 | 中文字幕av免费| 四虎在线免费视频| 国产麻豆综合视频在线观看| 91精品大全| 高潮白浆视频| 性国产高清在线观看| 九九热视频在线| 2019中文字幕在线电影免费| 人人九九精品| 国产精品入口麻豆电影| 国产精品久久人| 欧美卡一卡二| 伊人狠狠av| 午夜视频99| 日本免费不卡| 99色在线观看| 国产特级嫩嫩嫩bbb| 任你操在线观看| av超碰在线| 国产精品视频一区二区三区麻豆| 女同一区二区免费aⅴ| 在线观看视频污| 91av福利| 国产极品嫩模在线视频一区| 丁香花高清在线观看完整版 | 国产无遮挡在线视频免费观看| 香蕉视频在线观看网站| 国产经典自拍视频在线观看| 天堂中文资源在线| 国产中文在线观看| 九九热视频在线观看| 国产馆av播放| 国产精品毛片一区二区三区四区 | 丁香花高清在线观看完整版 | 国产视频在线播放| 国产美女自拍视频| 久久精品视频免费看| 四虎国产精品永久在线| 亚洲综合色视频在线观看| 中文在线观看视频| 中文字幕av高清| 亚洲人在线播放| 爱福利在线视频| 日本高清中文字幕在线| 欧美日韩久久中文字幕| 欧美黑人乱大交| 天天爱天天色| 国产欧美日韩精品综合| 国产精品777一区二区| 精品美女调教视频| 香蕉视频在线观看网站| 久久久久久五月天久久久久久久久| 狠狠干天天干| 中文字幕第一页在线| 国产精品99999| 国产xxxxx| 欧美xxxx黑人又粗又长| 国产免费永久在线观看| 国产一级粉嫩xxxx| 精品入口麻豆传煤| 免费视频中文字幕| 中文字幕网在线| 亚洲综合天堂网| 国产一级黄色片免费| 在线伊人免费视频| 国产在线观看18| av超碰在线| 国产精品自拍在线观看| 精品美女调教视频| 国产美女极品在线| 国产成人亚洲综合小说区|