我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HTML5中怎么导入文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HTML5中怎么导入文件

本篇内容主要讲解“HTML5中怎么导入文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5中怎么导入文件”吧!

Template,Shadow DOM和Custom Elements让您创建UI组件比以前更容易了。但是像HTML,CSS,JavaScript这样的资源仍然需要一个个地去加载,这是很没效率的。

例如,现在加载jQuery UI或Bootstrap就需要为JavaScript,CSS及Web字体添加单独的标签。如果您的Web组件应用了多重的依赖,那事情就变得更加复杂。

HTML导入让您以一个合并的HTML文件来加载这些资源。使用HTML导入

为加载一个HTML文件,您需要增加一个链接标签,其相关属性为import,herf属性是HTML文件的路径。例如,如果您想把component.html加载到index.html:

index.html

XML / HTML代码将内容复制到文本

< link rel = “ import” href = “ component.html” >       

您可以往HTML导入文件(译者注:此处将“导入的HTML”译为“ HTML导入文件”,将“原始HTML”译为“ HTML主文件”。例如,index.html是HTML主文件, component.html是HTML导入文件。)添加任何的资源,包括脚本,样式表和字体,就跟往普通的HTML添加资源一样。

component.html

XML / HTML代码将内容复制到文本

< link rel = “ stylesheet” href = “ css / style.css” >    

<脚本class="lazy" data-src = “ js / script.js” > </脚本>   

doctype,html,head,body这些标签是不需要的。HTML导入会立即加载要引入的文档,解析文档中的资源,如果有脚本的话也会立即执行它们。执行顺序

浏览器解析HTML文档的方式是线性的,这就是说HTML顶部的脚本会比底部先执行。并且,浏览器通常会等到JavaScript代码执行完毕后,才会接着解析后面的代码。

为了不让脚本压缩HTML的渲染,你可以在标签中添加async或Defer属性(或者你也可以将脚本标签放到页面的底部)。defer属性会重复脚本的执行,直到全部页面解析完成。async属性让浏览器初始化地执行脚本,从而不会阻止HTML的渲染。那么,HTML导入是怎样工作的呢?

HTML导入文件中的脚本就跟着包含defer属性一样。例如在下面的示例中,index.html会先执行script1.js和script2.js,然后再执行script3.js。

index.html

XML / HTML代码将内容复制到文本

< link rel = “ import” href = “ component.html” >  // 1。     

< title >导入示例</ title >  

< script class="lazy" data-src = “ script3.js” > </ script >         // 4。   

component.html

XML / HTML代码将内容复制到文本

< script class="lazy" data-src = “ js / script1.js” > </ script >      // 2。    

< script class="lazy" data-src = “ js / script2.js” > </ script >      // 3。   

1.在index.html中加载component.html并等待执行

2.执行component.html中的script1.js

3.执行完script1.js后执行component.html中的script2.js

4.执行完script2.js继而执行index.html中的script3.js

注意,如果给link [rel =“ import”]添加异步属性,HTML导入会把它当做包含异步属性的脚本来对待。它不会等待HTML导入文件的执行和加载,这意味着HTML导入不会阻止HTML主文件的渲染。这也给提升网站性能带来了可能,除非有其他的脚本依赖于HTML引入文件的执行。跨域引入

从根本上说,HTML引入是不能从其他的域名引入资源的。

例如,您不能从http://webcomponents.org/向http://example.com/导入HTML文件。为了绕过这个限制,可以使用CORS(跨域资源共享)。想了解CORS,请看这篇文章。HTML导入文件中的窗口和文档对象

前面我提过在引入HTML文件的时候里面的脚本是会被执行的,但这并不意味着HTML引入文件中的标签也会被浏览器渲染。你需要写一些JavaScript代码来帮忙。

当在HTML导入文件中使用JavaScript时,有一点要提防的是,HTML导入文件中的文档对象实际上指的是HTML主文件中的文档对象。以前面的代码为例,index.html和组件。 html的文档都是指index.html的文档对象。怎么才能使用HTML导入文件中的文档呢?可以链接中的导入属性。

index.html

XML / HTML代码将内容复制到文本

var  link  =  document .querySelector('link [ rel = “ import” ]');   

link.addEventListener('load',function(e){   

  var  importedDoc  = 链接.import;   

  // importedDoc指向component.html下的文档   

});  

为了获取component.html中的文档对象,要使用document.currentScript.ownerDocument。

component.html

XML / HTML代码将内容复制到文本

var  mainDoc  =  document .currentScript.ownerDocument;   

// mainDoc指向component.html下的文档  

如果您在用webcomponents.js,那么就用document._currentScript来代替document.currentScript。下划线用于填充currentScript属性,因为不是所有的浏览器都支持这个属性。

component.html

XML / HTML代码将内容复制到文本

var  mainDoc  =  document ._currentScript.ownerDocument;   

// mainDoc指向component.html下的文档   

通过在脚本开头添加下面的代码,您就可以轻松地访问component.html中的文档对象,而不用管浏览器是不是支持HTML导入。document._currentScript = document._currentScript || document.currentScript;性能方面的考虑

使用HTML引入的一个好处是能够将资源组织起来,但是也意味着在加载这些资源的时候,由于使用了一些额外的HTML文件而让它们变得过大。有几点是需要考虑的:解析依赖

例如,您要从导入文件中加载jQuery,如果每个引入文件都包含加载jQuery的script标签,则如果HTML主文件要依赖多个导入文件,而且引入文件中包含相同的库,这时会怎样呢?那么jQuery就会被加载两次,并且也会被执行两次。

index.html

XML / HTML代码将内容复制到文本

< link rel = “ import” href = “ component1.html” >    

< link rel = “ import” href = “ component2.html” >    

component1.html

XML / HTML代码将内容复制到文本

<脚本class="lazy" data-src = “ js / jquery.js” > </脚本>   

component2.html HTML引入自动帮你解决了这个问题。

以前面的代码为例,通过将加载jQuery脚本标签的做法不同,HTML引入对已经加载过的HTML文件进行进行,并通过加载jQuery的脚本标签打包成一个HTML导入文件,这样jQuery就只被加载和执行一次了。

而是还有一个问题:我们增加了一个要加载的文件。怎么处理多个扩展的文件呢?幸运的是,我们有一个叫vulcanize的工具来解决这个问题。合并网络请求

Vulcanize能将多个HTML文件合并成一个文件,从而减少了网络连接数。您可以通过npm安装它,并使用命令行来使用它。您可能同时使用grunt和gulp托管一些任务,这样的话你可以把vulcanize作为建造过程的一部分。

为了解析依赖以及合并index.html中的引入文件,使用如下命令:

复制代码

代码如下:

$ vulcanize -o vulcanized.html index.html

通过执行这个命令,index.html中的依赖会被解析,并且会产生一个合并的HTML文件,插入vulcanized.html。学习更多有关vulcanize的知识,请看这儿。

注意:http2的服务器推送功能被考虑为以后删除文件的链接与合并。把Template,Shadow DOM,自定义元素跟HTML引入结合起来

你之前可能没有看过这些文章,我先解释一下:Template可以让你用声明的方式定义你的自定义元素的内容。ShadowDOM可以让一个元素的样式,ID,类只作用到其本身。自定义元素可以让你自定义HTML标签。通过把这些跟HTML引入结合起来,你自定义的网络组件会变为替代,具有重叠性。任何人添加一个Link标签就可以使用它。

x-component.html

XML / HTML代码将内容复制到文本

< template id = “ template” >   

  <样式>  

    ...   

  </ style >  

  < div id = “容器” >   

    < img class="lazy" data-src = “ http://webcomponents.org/img/logo.svg” >   

    < content select = “ h2” > </ content >   

  </ div >  

</模板>  

<脚本>  

  //此元素将被注册到index.html   

  //因为`document`在这里是index.html中的那个   

  var  XComponent  =  document .registerElement('x-component',{   

    原型:Object.create(HTMLElement.prototype,{   

      createdCallback:{   

        值:function(){   

          var  root  =  this .createShadowRoot();   

          var  template  =  document .querySelector('#template');   

          var  clone  =  document .importNode(template.content,true);   

          root.appendChild(clone);   

        }   

      }   

    })   

  });   

</脚本>  

index.html

XML / HTML代码将内容复制到文本

...   

  < link rel = “ import” href = “ x-component.html” >    

</头>  

<身体>  

  < x分量>  

    < h2 >这是自定义元素</ h2 >  

  </ x-component >  

  ...  

注意,因为X-component.html中的文档对象跟的index.html的一样,你没必要再写一些棘手的代码,它会自动为你注册。支持的浏览器

Chrome和Opera提供对HTML导入的支持,Firefox要在2014年12月后才支持(Mozilla表示Firefox不计划在最初提供对HTML导入的支持,并需要首先了解ES6的模块是如何实现的)。

您可以去chromestatus.com或caniuse.com查询浏览器是否支持HTML导入。想要在其他浏览器上使用HTML导入,可以使用webcomponents.js(原名platform.js)。

到此,相信大家对“HTML5中怎么导入文件”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HTML5中怎么导入文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sqlplus中怎么导入dmp文件

要在sqlplus中导入dmp文件,可以按照以下步骤操作:确保已经在数据库服务器上登录到sqlplus工具中。使用以下命令连接到数据库实例:connect username/password@database其中,username是数据库
sqlplus中怎么导入dmp文件
2024-03-14

oracle怎么导入导出dmp文件

Oracle数据库可以使用exp和imp命令来导出和导入dmp文件。导出dmp文件:打开命令提示符或终端程序。输入以下命令导出dmp文件:exp 用户名/密码@数据库实例名 file=导出文件路径.dmp例如,导出用户hr的数据到D:\
oracle怎么导入导出dmp文件
2024-04-09

plsql怎么导入导出dmp文件

导入DMP文件:打开命令行窗口并登录到Oracle数据库实例。使用impdp命令导入DMP文件。命令的基本语法如下:impdp username/password@SID directory=directory_name dumpfile
plsql怎么导入导出dmp文件
2024-04-09

​sqlserver怎么导入mdf文件

导入步骤如下:将 mdf 文件复制到 sql server 的数据目录(通常为 c:\program files\microsoft sql server\mssql\data)。在 sql server management studio
​sqlserver怎么导入mdf文件
2024-04-08

mysql怎么导入mdf文件

mysql 无法直接导入 mdf 文件。要迁移数据,请执行以下步骤:安装 mssql server express。在 mssql 中导出 mdf 文件的数据。安装 mysql connector/odbc。在支持 odbc 的应用程序(如
mysql怎么导入mdf文件
2024-05-30

oracle怎么导入pck文件

在Oracle中导入pck文件并不是一个常规的操作,因为Oracle并不直接支持直接导入pck文件。通常,pck文件是Oracle包(package)的一部分,可以通过SQL脚本或PL/SQL代码来创建和使用。如果您有一个pck文件,并想
oracle怎么导入pck文件
2024-04-22

sqlserver怎么导入sql文件

要在SQL Server中导入一个SQL文件,您可以使用以下几种方法之一:使用SQL Server Management Studio (SSMS):打开SSMS并连接到您的数据库服务器。选择要导入SQL文件的数据库,然后右键单击它并选择“
sqlserver怎么导入sql文件
2024-04-19

sqlserver怎么导入csv文件

在 SQL Server 中,可以使用 BULK INSERT 语句来从CSV文件导入数据。以下是一个示例:BULK INSERT TableNameFROM 'C:\Path\To\Your\File.csv'W
sqlserver怎么导入csv文件
2024-04-09

php怎么导入sql文件

导入SQL文件到PHP数据库导入SQL文件可高效地将数据导入数据库。PHP提供多种方法:PDO:提供提交事务和禁用自动提交等高级选项。mysqli:易于使用且支持多语句查询。exec()函数:使用系统命令导入,但需谨慎使用。选择方法取决于个人偏好和应用程序需求。确保文件包含有效SQL,禁用自动提交以提高性能,并且在导入前备份数据库。
php怎么导入sql文件
2024-04-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录