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

标签 javascript html web-component html-imports

我记得在某处读到,如果使用 appendChildscript 标记添加到 DOM,它不会阻塞,并且表现得好像它有 async 属性。今天我在看this article它有以下代码片段:

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

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

最佳答案

定义in the specification , 每个 <link rel="import>标签未标记为 async正在阻止解析器。

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

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

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

关于javascript - 导入节点未作为异步添加到 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894590/

相关文章:

Javascript 访问 Disqus 评论文本框?

javascript - 如何隐藏对象中与过滤器不匹配的其他元素?

html - 如何在 HTML 中相对放置元素?

javascript - 如何用html5 canvas元素绘制透明图片

html - 如何在 Angular 服务中创建html模板并将其用作htmlTemplateRef?

javascript - 没有 Angular 的 Ionic 4 导航组件

javascript - Codeception selenium WaitForJS 和 Ajax

javascript - 主页按钮可见 Angular 2

javascript - 检查 Dom 元素是否为原生/无自定义元素

javascript - 如何指定运行嵌套 Web 组件构造函数的顺序?