Skip to content

js的defer属性、async属性和onload ​

本节目标:理解“js的defer属性、async属性和onload”的核心思路,并能把它用于实际开发或面试表达。

说明:原 OneNote 中有图片引用,但图片未包含在导出目录中;本页保留了可用的文字与代码内容。

首先看一下defer和async属性与html解析的时间关系
js的onload事件的加载时机是在js脚本下载并且执行完毕后,才会触发
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var el = document.createElement('script')
        el.async = true
        el.type = 'text/javascript'
        el.src = './test.js'
        el.onload = function () {
            console.log('async加载完了')
        }
        document.head.appendChild(el)
    </script>
</body>
</html>
./test.js
console.log('async javasciprt')
打印结果
async javasciprt
async加载完了

本站总访问 — 次