关于script的放置位置
//一家公司面試,問到script的放置位置
html文件是自上而下的執行方式,但引入的css和javascript的順序有所不同,css引入執行加載時,程序仍然往下執行,而執行到<script>腳本是則中斷線程,待該script腳本執行結束之后程序才繼續往下執行。
所以,大部分網上討論是將script腳本放在<body>之后,那樣dom的生成就不會因為長時間執行script腳本而延遲阻塞,加快了頁面的加載速度。
但又不能將所有的script放在body之后,因為有一些頁面的效果的實現,是需要預先動態的加載一些js腳本。所以這些腳本應該放在<body>之前。
其次,不能將需要訪問dom元素的js放在body之前,因為此時還沒有開始生成dom,所以在body之前的訪問dom元素的js會出錯,或者無效
?
?
首先我們需要了解的一點就是,在瀏覽器渲染頁面之前,它需要通過解析HTML標記然后構建DOM樹。在這個過程中,如果解析器遇到了一個腳本(script),它就會停下來,并且執行這個腳本,然后才會繼續解析HTML。如果遇到了一個引用外部資源的腳本(script),它就必須停下來等待這個腳本資源的下載,而這個行為會導致一個或者多個的網絡往返,并且會延遲頁面的首次渲染時間。
還有一點是需要我們注意的,那就是外部引入的腳本(script)會阻塞瀏覽器的并行下載,HTTP/1.1規范表明,瀏覽器在每個主機下并行下載的組件不超過兩個(也就是說,瀏覽器一次只能夠同時從同一個服務器加載兩個腳本);如果你網站的圖片是通過多個服務器提供的,那么按道理來說,你的網站可以一次并行下載多張圖片。但是,當我們網站在加載腳本的時候;瀏覽器不會再啟動任何其它的下載,即使這些組件來自不同的服務器。
轉載于:https://www.cnblogs.com/huqinqin/p/7682519.html
總結
以上是生活随笔為你收集整理的关于script的放置位置的全部內容,希望文章能夠幫你解決所遇到的問題。