javascript 在 HTML中調用

“內部”示例使用了以下結構:

document.addEventListener("DOMContentLoaded", function() {
  . . .
});

這是一個事件監聽器,它監聽瀏覽器的 "DOMContentLoaded" 事件,即 HTML 文檔體加載、解釋完畢事件。事件觸發時將調用 " . . ." 處的代碼,從而避免了錯誤發生。 

 

“外部”示例中使用了 JavaScript 的一項現代技術(async “異步”屬性)來解決這一問題,它告知瀏覽器在遇到 <script> 元素時不要中斷後續 HTML 內容的加載。

<script src="script.js" async></script>

 

 解決此問題的舊方法是:把腳本元素放在文檔體的底端(</body> 標籤之前,與之相鄰),這樣腳本就可以在 HTML 解析完畢後加載了。此方案(以及上述的 DOMContentLoaded 方案)的問題是:只有在所有 HTML DOM 加載完成後纔開始腳本的加載/解析過程。對於有大量 JavaScript 代碼的大型網站,可能會帶來顯著的性能損耗。這也是 async 屬性誕生的初衷。

 

瀏覽器遇到 async 腳本時不會阻塞頁面渲染,而是直接下載然後運行。這樣腳本的運行次序就無法控制,只是腳本不會阻止剩餘頁面的顯示。當頁面的腳本之間彼此獨立,且不依賴於本頁面的其它任何腳本時,async 是最理想的選擇。

 

使用 defer 屬性,腳本將按照在頁面中出現的順序加載和運行

詳情請瀏覽官方最新文檔:https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章