HTML里的哪一部分Javascript 会在页面加载的时候被执行?
最近遇到一個問題:
HTML里的哪一部分Javascript 會在頁面加載的時候被執(zhí)行()
A : 文件頭部
B : 文件尾
C : <head>標簽部分
D : <body>標簽部分
雖然大家都知道選D,但是關(guān)于答案的解析眾說紛紜,由此可見大家對于瀏覽器的加載解析渲染還是不夠了解。
瀏覽器是從上到下依次加載并解析的。
當瀏覽器加載html文件并解析到<head>時,頁面也就是<body>并沒有被解析,瀏覽器會等到<head>中的js執(zhí)行完再加載頁面。
這是為什么呢?
原因:JS有可能會修改DOM,最為經(jīng)典的document.write,這意味著,在JS執(zhí)行完成前,后續(xù)所有資源的下載可能是沒有必要的,這是js阻塞后續(xù)資源下載的根本原因。
示例代碼:
<!DOCTYPE html> <html> <head><title></title><script type="text/javascript">console.log('this is head js ');</script><script type="text/javascript" src='test.js'></script><style type="text/css">body{color: red;}</style> </head> <body> <script type="text/javascript">console.log('this is body js');window.οnlοad=function(){console.log('this is onload js');}; </script> <p >this is body</p> </body> </html>輸出:
?
?
this is head js?
this is test js
this is body js
this is onload js
?
由此可見head和頭部引進的script腳本最先加載并執(zhí)行,而onload是最后執(zhí)行的,所以處于<body>和</body>中的元素是在頁面加載的時候被執(zhí)行的。
了解這個有什么用呢?
假如說你把DOM操作放在了<head>標簽里,你會發(fā)現(xiàn)報錯,這是因為DOM樹還沒建立,getElementById獲取的是undefined。
所以說最好把<script>放在</body>之前。
轉(zhuǎn)載于:https://www.cnblogs.com/aliyunpang/p/9088202.html
總結(jié)
以上是生活随笔為你收集整理的HTML里的哪一部分Javascript 会在页面加载的时候被执行?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Q1全球智能机销量增长3.9% 三星苹果
- 下一篇: 前端基础(一):js数据类型