HTML中的 JavaScript 学习--高级程序设计学习

主要内容:

  • 使用<script>元素
  • 行内脚本与外部脚本的比较
  • 文档模式对JavaScript有什么影响
  • 确保JavaScript不可用时的用户体验

1 <script> 元素

script元素的属性:

async:可选。表示应该立即开始下载脚本,但不能阻止其他页面动作。只对外部脚本有效。

charset:可选。

crossorigin:可选。配置相关请求的cors(跨资源共享)设置。anonymous配置请求不必设置凭据标志。"use-credetials"设置凭证标志,。意味着出站请求会包含的凭证。

defer:可选。脚本可以延迟到文档完全解析和显示之后再执行。只对外部脚本有效。

integrity:可选。允许对比接收到额资源和指定的加签名以验证资源的完整性(SRI)。

src:可选。表示包含要执行的代码的外部文件。

type:可选。代替language。表示代码中脚本语言的内容类型(MIME类型)。按照管理,要是是text/javascript或者module。前者基本是默认值。如果是后者,则代码会被当成ES6模块,这时候代码中才能出现import和export关键字。

1.1 标签占位符

script 建议放在页面内容之后,</body>之前。这样就页面就在处理javaScript代码之前渲染页面。用户感觉加载更快。

1.2 推迟执行脚本

defer属性--立即下载,但延迟执行。会在浏览器解析到结束</html>标签之后才会执行。脚本应该按照他们出现的顺序执行。但实际,不一定。

1.3 异步执行脚本

async属性:与defer类似,但是执行顺序是随机的。重点在于,这些脚本没有依赖关系。

1.4 动态加载脚本

javaScript可以使用DOM API。所以通过DOM中动态添加script元素同样可以加载指定的脚本。

let script = document.creatElement('script');
script.src = 'gx.js';
script.async = false;
document.head.appendChild(script);

1.5 XHTML中的变化

可扩展超文本标记语言(XHTML)是将HTML作为XML的应用重新包装的结果。与HMTML不同,XHTML中使用JavaScript必须指定type属性且值为text/javascript。

1.6 废弃的语法

2 行内代码与外部文件

虽然可以直接在html文件总潜入javaSccript代码,但通常认为最佳实践是尽可能将JavaScript代码放在外部文件中。推荐外部文件理由如下:

    1. 可维护性。
    2. 缓存。如果,两个页面用到同一个文件,则该文件只需下载一次。意味着页面加载更快。
    1. 适应未来。外部的js文件,在html和xhtml中是一样的。

3 文档模式

doctype切换文档模式。最初有:混杂模式和标准模式。后面添加:准标准模式。

4 <noscript> 元素

针对浏览器不支持javaScript的问题,需要一个页面优雅的降级处理方案。noscript用于给不支持javaScript的浏览器提供替代内容。对于禁用JavaScript的浏览器来说,这个元素仍然有用。在下面两种情况,浏览器将显示noscript中的内容。

    • 浏览器不支持脚本
    • 浏览器对脚本的支持被关闭。

5 小结

JavaScript是通过script元素插入到HTML页面中。这个元素可以把javaCript代码潜入到HTML页面中。跟其他标记混合在一起,也可以引入保持在外部的JavaScript。

    • 要包含外部JavaScript文件,必须将src属性设置为要包含的文件的URL。
    • 所有script元素会依照它们在页面中出现的次序被解析。在不实用defer和async的属性情况下,会严格按照次序解析。
    • 对于不推迟执行的脚本,浏览器必须解释完位于script元素中的代码,然后才能继续渲染页面的剩余部分。
    • 可以使用defer属性,把脚本推迟到文档渲染完毕再执行。推迟的原则按照出现次序。
    • 可以使用async属性表示脚本不需要等待其他脚本,同时也不阻塞文档渲染,既异步加载,同时无法保证它们在页面中出现的次序。
    • 可以通过使用noscript元素。指定浏览器不支持脚本显示的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值