微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 导入节点未作为异步添加到DOM

我记得在某处读过如果使用appendChild将一个脚本标记添加到DOM,它就不会阻塞,并且表现得好像它有async属性.今天我正在阅读 this article,它有以下代码片段:

var link = document.createElement('link');
link.rel = 'import';
link.href = 'file.html';
//link.setAttribute('async',''); // make it async!

所以我想知道对于链接标记,脚本标记描述的行为是否相同?为什么手动添加异步属性

解决方法

根据定义 in the specification,每个未标记为异步的< link rel =“import>标记都会阻止解析器.

如果您添加< link>使用appendChild(),它不会阻止当前的脚本执行,但实际上它将阻止解析,直到加载导入的文档.

如果之后您添加了另一个标记 – 使用appendChild() – 由导入的文档引用,您仍需要指定async属性.

document.head.appendChild( link )
//link should be async if it uses the element below:
document.body.appendChild( element )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐