js的相關(guān)概念

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

  • CSS一般放置在head標(biāo)簽內(nèi),要是頁(yè)面在無(wú)CSS渲染下先加載HTML的話將會(huì)面目全非蝙昙,樣式先行的話在加載HTML內(nèi)容時(shí)可以同時(shí)渲染樣式掂咒,避免FOUC腥寇。
  • JS一般放置在</body>標(biāo)簽之前、body標(biāo)簽中html內(nèi)容的后面氮惯,這是為了提高頁(yè)面渲染的速度效率叮雳。瀏覽器在加載<script>元素內(nèi)部的JS代碼將被從上至下依次解釋,解釋器對(duì)<script>元素內(nèi)部所有代碼求值完畢之前妇汗,會(huì)阻塞其他資源的加載帘不,頁(yè)面的其余內(nèi)容都不會(huì)被瀏覽器加載顯示,如果放置在前面其他位置杨箭,會(huì)對(duì)頁(yè)面內(nèi)容的加載速度產(chǎn)生影響寞焙。

解釋白屏和FOUC

當(dāng)把CSS樣式放在底部或者使用@import方式引入樣式、或?qū)S放在頭部造成其他內(nèi)容阻塞加載時(shí):

  • 例如chrome,他的加載和渲染機(jī)制是等頭部的JS和底部的CSS全部加載解析完后再渲染展示頁(yè)面,而這個(gè)等待的時(shí)間就為白屏互婿。
  • 例如Firefox,他會(huì)在CSS未加載前先展現(xiàn)頁(yè)面,等css加載后再重繪一次,這就造成了FOUC (無(wú)樣式內(nèi)容閃爍)捣郊。
    所以為了避免這些問(wèn)題,最好使用link標(biāo)簽將CSS樣式表放在文檔的head中,將JS放置在</body>標(biāo)簽之前慈参、body標(biāo)簽中html內(nèi)容的后面呛牲。

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ā)之前完成验懊,即有順序

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

  1. 解析 HTML 標(biāo)簽, 構(gòu)建 DOM 樹
  2. 解析 CSS 標(biāo)簽, 構(gòu)建 CSSOM 樹
  3. 把 DOM 和 CSSOM 組合成 渲染樹 (render tree)
  4. 在渲染樹的基礎(chǔ)上進(jìn)行布局, 計(jì)算每個(gè)節(jié)點(diǎn)的幾何結(jié)構(gòu)
  5. 把每個(gè)節(jié)點(diǎn)繪制到屏幕上 (painting)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末擅羞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子义图,更是在濱河造成了極大的恐慌减俏,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碱工,死亡現(xiàn)場(chǎng)離奇詭異娃承,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)怕篷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門历筝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人廊谓,你說(shuō)我怎么就攤上這事梳猪。” “怎么了蒸痹?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵春弥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我叠荠,道長(zhǎng)匿沛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任榛鼎,我火速辦了婚禮逃呼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘借帘。我一直安慰自己蜘渣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布肺然。 她就那樣靜靜地躺著蔫缸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪际起。 梳的紋絲不亂的頭發(fā)上拾碌,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音街望,去河邊找鬼校翔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛灾前,可吹牛的內(nèi)容都是我干的防症。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蔫敲!你這毒婦竟也來(lái)了饲嗽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奈嘿,失蹤者是張志新(化名)和其女友劉穎貌虾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裙犹,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尽狠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叶圃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袄膏。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖掺冠,靈堂內(nèi)的尸體忽然破棺而出哩陕,到底是詐尸還是另有隱情,我是刑警寧澤赫舒,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站闽瓢,受9級(jí)特大地震影響接癌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扣讼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一缺猛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椭符,春花似錦荔燎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蒸健,卻和暖如春座享,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背似忧。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工渣叛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盯捌。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓淳衙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子箫攀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • 1. CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的肠牲? CSS最好放入header中,即放在網(wǎng)頁(yè)內(nèi)容(html標(biāo)簽中包含的...
    熊蛋子17閱讀 505評(píng)論 0 0
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案匠童? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,751評(píng)論 1 92
  • 一:在制作一個(gè)Web應(yīng)用或Web站點(diǎn)的過(guò)程中埂材,你是如何考慮他的UI、安全性汤求、高性能俏险、SEO、可維護(hù)性以及技術(shù)因素的...
    Arno_z閱讀 1,157評(píng)論 0 1
  • 1. CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的扬绪? css放在head標(biāo)簽內(nèi)竖独,防止渲染時(shí)出現(xiàn)白屏 js放在最后body...
    billa_8f6b閱讀 574評(píng)論 0 0
  • 粗粗翻了一下簡(jiǎn)書的首頁(yè),看著大佬們辛勤耕耘挤牛,收獲頗豐莹痢,也偶爾點(diǎn)進(jìn)幾個(gè)安安靜靜做著讀書筆記的人... 有了以下的感想...
    bonbongu閱讀 217評(píng)論 0 0