JS相關(guān)概念

CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的倔毙?

  • CSS放在header頭部里面,JS放在body尾部
  • IE下載的順序是從上到下席纽,渲染的順序也是從上到下即寡,下載和渲染是同時(shí)進(jìn)行的伟件。樣式表在下載完成后,將和以前下載的所有樣式表一起進(jìn)行解析艰猬,解析完成后横堡,將對(duì)此前所有元素(含以前已經(jīng)渲染的)重新進(jìn)行渲染。
  • JS不能并行下載和解析(阻塞下載),當(dāng)引用了JS的時(shí)候冠桃,瀏覽器發(fā)送1個(gè)js request就會(huì)一直等待該request的返回翅萤。因?yàn)闉g覽器需要1個(gè)穩(wěn)定的DOM樹(shù)結(jié)構(gòu),而JS中很有可能有代碼直接改變了DOM樹(shù)結(jié)構(gòu)腊满,比如使用 document.write 或 appendChild,甚至是直接使用的location.href進(jìn)行跳轉(zhuǎn)套么,瀏覽器為了防止出現(xiàn)JS修改DOM樹(shù),需要重新構(gòu)建DOM樹(shù)的情況碳蛋,所以 就會(huì)阻塞其他的下載和呈現(xiàn)胚泌。

解釋白屏和FOUC

  • 如果把樣式放在底部,對(duì)于IE瀏覽器,在某些場(chǎng)景下(新窗口打開(kāi),刷新等)頁(yè)面會(huì)出現(xiàn)白屏,而不是內(nèi)容逐步展現(xiàn),如果使用 @import 標(biāo)簽,即使 CSS 放入 link, 并且放在頭部,也可能出現(xiàn)白屏

  • 如果把樣式放在底部,對(duì)于IE瀏覽器,在某些場(chǎng)景下(點(diǎn)擊鏈接,輸入U(xiǎn)RL,使用書簽進(jìn)入等),會(huì)出現(xiàn) FOUC 現(xiàn)象(逐步加載無(wú)樣式的內(nèi)容,等CSS加載后頁(yè)面突然展現(xiàn)樣式).對(duì)于 Firefox 會(huì)一直表現(xiàn)出 FOUC .

async和defer的作用是什么?有什么區(qū)別

  • 沒(méi)有 defer 或 async肃弟,瀏覽器會(huì)立即加載并執(zhí)行指定的腳本玷室,“立即”指的是在渲染該 script 標(biāo)簽之下的文檔元素之前,也就是說(shuō)不等待后續(xù)載入的文檔元素笤受,讀到就加載并執(zhí)行穷缤。

  • 有 async,加載和渲染后續(xù)文檔元素的過(guò)程將和 script.js 的加載與執(zhí)行并行進(jìn)行(異步)箩兽。

  • 有 defer津肛,加載后續(xù)文檔元素的過(guò)程將和 script.js 的加載并行進(jìn)行(異步),但 script.js 的執(zhí)行要在所有元素解析完成之后汗贫,DOMContentLoaded 事件觸發(fā)之前完成身坐。

  • defer:腳本延遲到文檔解析和顯示后執(zhí)行,有順序

  • async:不保證順序

簡(jiǎn)述網(wǎng)頁(yè)的渲染機(jī)制

  1. 瀏覽器通過(guò)HTTP協(xié)議請(qǐng)求服務(wù)器落包,獲取HMTL文檔并開(kāi)始從上到下解析部蛇,構(gòu)建DOM;
  2. 在構(gòu)建DOM過(guò)程中咐蝇,如果遇到外聯(lián)的樣式聲明和腳本聲明涯鲁,則暫停文檔解析,創(chuàng)建新的網(wǎng)絡(luò)連接有序,并開(kāi)始下載樣式文件和腳本文件抹腿;
  3. 樣式文件下載完成后,構(gòu)建CSSDOM笔呀;腳本文件下載完成后幢踏,解釋并執(zhí)行,然后繼續(xù)解析文檔構(gòu)建DOM
  4. 完成文檔解析后许师,將DOM和CSSDOM進(jìn)行關(guān)聯(lián)和映射房蝉,最后將視圖渲染到瀏覽器窗口
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末僚匆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子搭幻,更是在濱河造成了極大的恐慌咧擂,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檀蹋,死亡現(xiàn)場(chǎng)離奇詭異松申,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)俯逾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門贸桶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人桌肴,你說(shuō)我怎么就攤上這事皇筛。” “怎么了坠七?”我有些...
    開(kāi)封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵水醋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我彪置,道長(zhǎng)拄踪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任拳魁,我火速辦了婚禮惶桐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘的猛。我一直安慰自己耀盗,他們只是感情好想虎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布卦尊。 她就那樣靜靜地躺著,像睡著了一般舌厨。 火紅的嫁衣襯著肌膚如雪岂却。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天裙椭,我揣著相機(jī)與錄音躏哩,去河邊找鬼。 笑死揉燃,一個(gè)胖子當(dāng)著我的面吹牛扫尺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炊汤,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼正驻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼弊攘!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起姑曙,我...
    開(kāi)封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤襟交,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后伤靠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體捣域,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年宴合,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了焕梅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卦洽,死狀恐怖丘侠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逐样,我是刑警寧澤蜗字,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站脂新,受9級(jí)特大地震影響挪捕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜争便,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一级零、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滞乙,春花似錦奏纪、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至兔簇,卻和暖如春发绢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背垄琐。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工边酒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人狸窘。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓墩朦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親翻擒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氓涣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • 1. CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的鹃操? css放在head標(biāo)簽內(nèi),防止渲染時(shí)出現(xiàn)白屏 js放在最后body...
    billa_8f6b閱讀 576評(píng)論 0 0
  • 簡(jiǎn)單介紹JavaScript的發(fā)展歷史 JavaScript因互聯(lián)網(wǎng)而生春哨,回顧它的歷史要從瀏覽器的歷史講起荆隘。 19...
    _Dot912閱讀 492評(píng)論 0 3
  • 1、CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的赴背? (1)CSS 對(duì)于谷歌瀏覽器和Safari放在head里或body里...
    徐國(guó)軍_plus閱讀 447評(píng)論 0 0
  • 1椰拒,CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的? 網(wǎng)站加載的整個(gè)完整過(guò)程是:1凰荚、首先瀏覽器從服務(wù)器接收到html代碼燃观,...
    進(jìn)擊的前端_風(fēng)笑影閱讀 311評(píng)論 0 0
  • CSS和JS在網(wǎng)頁(yè)中的放置順序 網(wǎng)站加載的整個(gè)完整過(guò)程:首先瀏覽器從服務(wù)器接收到html代碼,然后開(kāi)始解析html...
    Joey的企鵝閱讀 276評(píng)論 1 0