JS的插入
JavaScript代碼需要寫(xiě)在<script></script>之間。有的JS代碼寫(xiě)head標(biāo)簽內(nèi),也有寫(xiě)在body標(biāo)簽內(nèi)的,請(qǐng)問(wèn)它們有什么區(qū)別嗎
JavaScript代碼需要寫(xiě)在<script></script>之間。有的JS代碼寫(xiě)head標(biāo)簽內(nèi),也有寫(xiě)在body標(biāo)簽內(nèi)的,請(qǐng)問(wèn)它們有什么區(qū)別嗎
2017-08-08
舉報(bào)
2017-08-08
js應(yīng)該放在body的底部,因?yàn)闉g覽器需要一個(gè)穩(wěn)定的dom樹(shù)結(jié)構(gòu),而且js中很有可能有代碼直接改變了dom樹(shù)結(jié)構(gòu),瀏覽器為了防止出現(xiàn)js修改dom樹(shù),需要重新構(gòu)建dom樹(shù)的情況,所以就會(huì)阻塞其他的下載和呈現(xiàn)。
將javaScript放在head內(nèi)和body地步的區(qū)別也在于此,放在head里面,由于瀏覽器發(fā)現(xiàn)head里面有JavaScript標(biāo)簽就會(huì)暫時(shí)停止其他渲染行為,等待JavaScript下載并執(zhí)行完成才能接著往下渲染,而這個(gè)時(shí)候由于在head里面這個(gè)時(shí)候頁(yè)面是白的;如果將JavaScript放在頁(yè)面底部,render Tree已經(jīng)完成大部分,所以此時(shí)頁(yè)面有內(nèi)容呈現(xiàn),即使遇到JavaScript阻塞渲染,也不會(huì)有白屏出現(xiàn)。
2017-08-08
渲染的順序不同,如果想讓JS盡早執(zhí)行,最好放在head里面,會(huì)影響加載速度,影響后面代碼的執(zhí)行;放在body里面,不會(huì)對(duì)加載速度,渲染等產(chǎn)生太大影響
2017-08-08
區(qū)別不是很大,只是執(zhí)行順序的不同
2017-08-08
執(zhí)行的順序不同,一個(gè)是讀完html再執(zhí)行,一個(gè)是直接引用