HTML4.01为script定义了下列6个属性:

1.async:可选。

表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。(只对外部脚本文件有效)

async属性的目的是:不让页面等待两个脚本 下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。异步脚本会在页面load事件前执行。

async属性与defer属性类似,都用于改变处理脚本的行为,与defer类似都只适用于 外部脚本文件,并告诉浏览器立即下载文件,但与defer不同的是,标记为async的脚本并不保证按照指定的先后顺序执行,因此如果页面中有两个或多个带有async属性的引用文件,确保两者之间互不依赖非常重要。

2.charset:可选。

表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因为这个属性很少有人用。

3.defer:可选。

表示脚本可以延迟到文档全部被解析和显示之后再执行。(只对外部脚本文件有效,IE7及更早版本对嵌入脚本也支持这个属性)

defer属性用途是:表明在执行时不会影响页面构造,也就是说,脚本会延迟到整个页面都解析完毕后再运行。因此在script中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。

HTML5规范要求按照脚本出现的先后顺序执行,第一个延迟脚本会优先于第二个脚本执行,但现实中延迟脚本并不会按一定顺序执行,因此最好包含一个延迟脚本。

4.language:已废弃。

原来用于表示代码编写使用的语言(如js、js1.2.或VBScript),大多数浏览器会忽略这个属性,因此也没有必要用了。

5.src:可选。

表示包含要执行代码的外部文件。

6.type:可选。

可以看成是language的代替属性:表示编写代码使用的脚本语言的内容类型(也成为MIME类型)。

虽然text/javascript和text/ecmascript都已经不被推荐使用,但人们一直以来使用的都还是text/javascript。实际上,服务器在传送JavaScript文件时使用的MIME类型通常是application/x-javascript,但type中设置这个值却可能会导致脚本文件被忽略。另外,在非IE浏览器中还可以使用一下值:application/javascript和application/ecmascript。

考虑到约定俗成和最大限度的浏览器兼容性,目前type属性的值依旧还是text/javascript。不过,这个属性并不是必需的,如果没有指定这个属性,则其默认值仍为text/javascript。

使用script元素的方式有两种:

1.直接在页面中嵌入js代码。

包含在script元素内部的js代码将从上至下依次解释。解释器会解释一个函数的定义,然后将该定义保存在自己的环境中。

在解释器对script内部的所有代码求值完毕以前,页面中的其他内容都不会被浏览器加载和显示。

2.引用外部js文件。

通过script的src属性引用外部文件,还可以包含来自外部域的文件,即src属性指向当前HTML页面所在域之外的某个域中的完整URL。这样外部域中的代码也会被加载和解析,不过,加载外部域的文件要多加小心,如果遇到怀有恶意的程序员,那么他们随时都可能替换该文件的代码。

注意:

1.带有src属性的元素中,不应该包含额外的js代码,如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略 。

2.无论如何包含代码,只要不存在defer和async属性,浏览器都会按照script元素在页面中出现的顺序对他们一次解析,即第一个script元素中的代码解析完成后,才解析第二个,第三个……

script元素都有哪些属性?分别是哪些作用?相关推荐

  1. javascript高级程序设计(第3版)之《script元素》

    <script>元素属性 属性 定义 async [可选].可以异步加载,表示可以立即下载此脚本,但不影响页面其他操作.只对外部脚本有效. charset [可选].表示通过src属性制定 ...

  2. 必须为元素类型 association 声明属性 oftype。_CSS相关的选择器和属性介绍

    类型选择器 CSS中的一种选择器是元素类型的名称.使用这种选择器(称为类型选择器),可以向这种元素类型的每个实例上应用声明.例如,以下简单规则的选择器是H1,因此规则作用于文档中所有的H1元素: 1H ...

  3. DOM对象,节点,获取元素的非行间样式,元素的偏移量等属性词

    获取页面中的元素的方法 作用: 通过各种方式获取页面中的元素 以前我们说过, id 可以直接使用 这个方法只能通过 id 获取 今天学的就是使用各种方式 比如: id, 类名, 标签名, 选择器 的方 ...

  4. HTML5 script元素async,defer异步加载

    原文地址:HTML5′s async Script Attribute (译者注: 异步加载,可以理解为无阻塞并发处理.) (译者再注: 建议使用 defer,但是经测试发现 defer 属性对页面内 ...

  5. 动画延迟效果css,每个子元素都有延迟的CSS动画

    每个子元素都有延迟的CSS动画 我试图通过将动画应用于每个子元素来创建级联效果. 我想知道是否有比这更好的方法: .myClass img:nth-child(1){ -webkit-animatio ...

  6. 定位到元素后获取其属性_(11)让“盒子”动起来:② “定位”和 BFC | CSS

    原创:itsOli @前端一万小时本文首发于公众号「前端一万小时」本文版权归作者所有,未经授权,请勿转载!本文节选自"语雀"私有付费专栏「前端一万小时 | 从零基础到轻松就业」 ❗ ...

  7. java设计一个立方体类box_实例1: 设计一个立方体类Box,定义三个属性,分别是长,宽,高。定义二个方法,分别计算并输出立方体的体积和表面积。_学小易找答案...

    [填空题]表达式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值为 _________ . [填空题]表达式 len(' 中国 '.encode('ut ...

  8. JS中script标签defer和async属性的区别

    向html页面中插入javascript代码的主要方法就是通过script标签.其中包括两种形式,第一种直接在script标签之间插入js代码,第二种即是通过src属性引入外部js文件.由于解释器在解 ...

  9. 点击按钮返回数组 ages 中所有元素都大于输入框指定数值的元素和 $set()

    返回数组 ages 中所有元素都大于输入框指定数值的元素: <body><p>点击按钮返回数组 ages 中所有元素都大于输入框指定数值的元素.</p> <p ...

最新文章

  1. quickpcb添加pcb库_quickpcb使用说明
  2. python代码怎么运行-python代码是怎样运行的
  3. 如何在Slack里连接微软One Drive
  4. 8,hibernate的集合
  5. 网页制作之CSS超级技巧
  6. EntityFramework中的DbContext使用疑点说明
  7. Android应用内存泄露分析以及优化方案
  8. 2019年春季学习第七周学习总结
  9. linux 命令:nohup 详解
  10. 软路由做网站服务器怎么样,为啥我不用双软路由(三)低成本和高体验
  11. 地球上最长的两座山脉:一座4800公里,一座8900公里
  12. 一个小白的自渡-Git 仓库基础操作
  13. 鸿海成立AI研发中心 5年投资100亿新台币
  14. Lattice开发工具 diamond总结
  15. SPA项目开发之首页导航+左侧菜单
  16. 固定Java窗口的大小
  17. 信息化项目验收确认测试的内容和流程有哪些?
  18. 游戏美术次世代制作流程图文详解
  19. css中2D转换效果实现(4)
  20. HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

热门文章

  1. Linux压缩及解压缩命令
  2. Python学习:SIR传染病模型
  3. PyCharm添加Anaconda中的虚拟环境,Python解释器出现Conda executable is not found
  4. 春招我借这份PDF的复习思路,帮你突破瓶颈
  5. 前端js去重的常用的简单的三种方法
  6. IDEA中使用git提交代码
  7. 跨考计算机性价比学校,高性价比院校推荐第五波,又想骗我考你们学校!
  8. MySQL索引原理及其优化
  9. 图像去噪简单介绍—并给出示例代码
  10. Java实现下载网络文件至本地