【JS】关于script标签

1.首先,script标签是什么?

script标签是在web中有一种非常重要的标签,它的存在才使得脚本可以引入dom文档,并且动态网页的实现也需要使用此标签

2.script标签都有哪些属性?(在HTML5当中)

  • 在HTML5当中主要有以下几个属性:
属性属性值
async可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,仅适用于外部脚本,比如启用该选项之后,当脚本下载过程之中,直接渲染之后的html文档,下载完成之后,暂停渲染,执行该外部脚本,但是标记为 async 的脚本并不保证按照指定它们的先后顺序执行,后面的async脚本可能先于之前的async脚本。
charset可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,此属性值很少会被用到
defer可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本有效。跟放在Html文档最后面效果一致,但是defer更灵活。没有特别的位置需求,而且script只能操作在其之前的对象,defer使得此操作变得方便起来。
src可选。表示包含要执行代码的外部文件。
type可选。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型

3.script标签的常用方法

(1)从外部引入脚本

<script type="text/javascript" src="demo.js"></script>

(2)在标签体中插入一个脚本(一段js代码)

<script type="text/javascript">
       document.write("Hello World!")
</script>

(3)行内Js

<input type="button" value="测试" onclick="alert('点击')"/>
<a href="javascript:alert('dd')">URL主体</a>

4.script标签放置的位置

  • 在Html文档中可以编写任意多的script标签,编写任意多的js代码。script标签可以放在<body> 或 <head>当中。

5.不同位置的script标签的区别

  • 如果将 JavaScript 放在 head 部分,整个 JavaScript 将在加载任何 HTML 之前加载,可能会导致一些问题:
1.如果JavaScript 中有代码会在 JavaScript 代码加载时立即更改 HTML,那么实际上还没有任何可用的 HTML 元素对其产生影响,因此看起来 JavaScript 代码似乎不起作用,而您可能会出错。
2.如果有很多 JavaScript,它会明显减慢页面的加载速度,因为它会在加载任何 HTML 之前加载所有 JavaScript。

当将 JavaScript 放在 HTML 正文的底部时,它会在任何 JavaScript 加载之前让 HTML 有时间加载,这可以防止错误并加快网站响应时间。

  • 具体显示效果如下:
    在这里插入图片描述
    首先我们将script标签放在head当中进行测试,测试结果如下:
    在这里插入图片描述
    接下来我们将相同的script标签放在body当中,进行测试:
    在这里插入图片描述

测试效果如下:
在这里插入图片描述

而出现以上效果的原因是脚本在h标签之前加载了。在加载脚本的时候,由于无法找到h标签的,最终导致无法改变颜色。

还有一种方式:外部JavaScript

JavaScript 也可用于外部文件。JavaScript 文件的文件扩展名为“.js”。要使用外部脚本,请将脚本文件的名称放在脚本标记的 src 属性中。

  • 外部 JavaScript 有哪些优点
1.分离 HTML 和 JavaScript 代码将有助于更轻松地管理代码库。
2.设计人员可以与编码人员并行工作而不会发生代码冲突。
3.适用于现代源代码版本控制系统,例如 GIT。这意味着这些文件中的每一个都将维护一个历史记录,并且可以由多个程序员签入、签出。
4.代码和 HTML 都易于阅读。
5。外部 JavaScript 文件由浏览器缓存,可以加快页面加载时间。
6.许多流行的 JavaScript 包都托管在内容交付网络 (cdn) 上,您可以使用src 中的 URL 简单地指向它们,从而避免将 js 文件复制到本地文件夹。

值得注意的是:大多数浏览器在加载含有<script>标签的页面时,会发生如下情形:

1.获取 HTML 页面
2.开始解析 HTML
3.解析器遇到<script>引用外部脚本文件的标记。
4.浏览器请求脚本文件。同时,解析器会阻止并停止解析页面上的其他 HTML。
5.一段时间后,脚本被下载并随后执行。
6.解析器继续解析 HTML 文档的其余部分。

当浏览器请求脚本文件时会导致网页停止加载,带给用户不好的体验,而现在有解决办法如下:

  • 异步和延迟

异步async:具有 async 属性的脚本是异步执行的。这意味着脚本在下载后立即执行,同时不会阻止浏览器。这意味着可以在脚本 1 之前下载和执行脚本 2。

<script src="path/script1.js" defer></script>
<script src="path/script2.js" defer></script>

延迟defer:具有 defer 属性的脚本按顺序执行(即第一个脚本 1,然后是脚本 2)。这也不会阻止浏览器。与异步脚本不同,延迟脚本仅在整个文档加载后才执行。

<script src="path/script1.js" defer></script>
<script src="path/script2.js" defer></script>

  • 15
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值