简单介绍HTML5中的文件导入
Template、Shadow DOM及Custom Elements 让你创建UI组件比以前更容易了。但是像HTML、CSS、JavaScript这样的资源仍然需要一个个地去加载,这是很没效率的。
删除重复依赖也并不简单。例如,现在加载jQuery UI或Bootstrap就需要为JavaScript、CSS及Web Fonts添加单独的标签。如果你的Web 组件应用了多重的依赖,那事情就变得更为复杂。
HTML 导入让你以一个合并的HTML文件来加载这些资源。
使用HTML导入
为加载一个HTML文件,你需要增加一个link标签,其rel属性为import,herf属性是HTML文件的路径。例如,如果你想把component.html加载到index.html:
index.html
XML/HTML
你可以往HTML导入文件(译者注:本文将“ the imported HTML”译为“HTML导入文件”,将“the original HTML”译为“HTML主文件”。例如,index.html是HTML主文件,component.html是HTML导入文件。)添加任何的资源,包括脚本、样式表及字体,就跟往普通的HTML添加资源一样。
component.html
XML/HTML
doctype、html、head、body这些标签是不需要的。HTML 导入会立即加载要导入的文档,解析文档中的资源,如果有脚本的话也会立即执行它们。
执行顺序
浏览器解析HTML文档的方式是线性的,这就是说HTML顶部的script会比底部先执行。并且,浏览器通常会等到JavaScript代码执行完毕后,才会接着解析后面的代码。
为了不让script 妨碍HTML的渲染,你可以在标签中添加async或defer属性(或者你也可以将script 标签放到页面的底部)。defer 属性会延迟脚本的执行,直到全部页面解析完毕。async 属性让浏览器异步地执行脚本,从而不会妨碍HTML的渲染。那么,HTML 导入是怎样工作的呢?