4

我记得在某处读到,如果将script标签添加到DOM使用appendChild它不会阻塞并且表现得好像它具有async属性。今天我正在阅读这篇文章,它有以下代码片段:

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

所以我想知道标签描述的行为是否与script标签相同link?为什么要async手动添加属性?

4

1 回答 1

1

正如规范中所定义的,每个<link rel="import>未标记为的标签async都会阻塞解析器。

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

如果之后添加另一个标签 -with appendChild()- 被导入的文档引用,您仍然需要指定async属性。

document.head.appendChild( link )
//link should be async if it uses the element below:
document.body.appendChild( element )
于 2016-12-07T13:31:35.977 回答