前言

我想先和大家说一下为什么我会写这一方面的文章,在现在的公司里进行的是网站的开发与维护,但是我在实际的操作的过程中发现,虽然关于HTML界面的语法我在大学的时候基本上都已经学过了,但是由于本人学习的较差,再加上之前接触的都是静态的网站,用到的脚本比较少。我在工作的过程中看到这个脚本的时候我虽然知道在这个地方调用了一个脚本,但是准确的来说我不知道是怎么调用脚本的,脚本里面的function是在什么时候执行的。我呢就是带着这样的疑惑,才写下的这篇文章。

基本内容

<script>标签用于定义客户端脚本,比如javascript。
元素里面既可以包含脚本语言又可以通过src指向外部的脚本文件。type属性还可以指定脚本的MIME类型。((Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。)

//指定MIME类型的方式方法
<script type="text/javascript">
document.write("Hello World!")
</script>

注释:脚本按照如下方式执行:

  • 如果 async 属性为 true,则脚本会相对于文档的其余部分异步执行,这样脚本会在页面继续解析的过程中执行。
  • 如果 async 属性为 false,而 defer 属性为 true,则脚本会在页面完成解析后执行。
  • 如果 async 和 defer 属性均为 false,那么脚本会立即执行,页面会在脚本执行完毕后继续解析。
  • 提示:如果存在 src 属性,则 <script> 标签必须是空的。

<script>标签的使用

通常,我们会把带有外部文件的的标签(包括CSS文件,JavaScript文件)的引用放在相同的位置,一般是在<head>标签里面。但是这样的话在解析过程中一旦遇到多个JavaScript外部文件,就要等到所有的外部文件加载完成后,页面才能完全显示,所以通常我们会把它放在<body>标签的底部。

所以一般需要在页面元素渲染前加载的文件应该放在<body>元素的前面,需要在页面渲染完成后加载的文件放在</body>元素的后面,body标签的onload事件是最后执行的。

(在HTML5以前(HTML5已经不支持了)存在一个defer延迟的属性,可以定义脚本在页面全部加载完全之后,进行加载。)

<noscript>标签的使用

NO-script,没有script,也就是浏览器不支持JavaScript时,<noscript>标签中内容才会被显示,

  • 浏览器不支持脚本;
  • 浏览器支持脚本,但是JavaScript被禁用;

上图页面,给用户了一个信息,当浏览器不支持或禁用JavaScript是才会被显示,否则用户将永远不会看到,并且不会影响页面其他元素的显示。