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 )

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...