<script>

  • 现代web应用程序通常将所有JavaScript引用放在<body>元素中的页面内容后面
<!DOCTYPE html>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<!--页面内容-->
<script src="example1.js"></script>
<script src="example2.js"></script>
</body>
</html>
  • 推迟执行——属性defer:浏览器立即下载并解析但延迟执行脚本,延迟到整个页面都解析完毕后再执行

    • 仅对外部脚本文件有效
    • HTML5规范要求他们按顺序执行(最好只包含一个这样的脚本)
  • 异步执行——属性async:浏览器立即下载并解析脚本,之后可立即执行

    • 仅对外部脚本文件有效
    • 不一定会按在页面中嵌入的顺序执行
    • 异步脚本不应该在加载期间修改DOM
  • 动态加载脚本:向DOM动态添加script元素

    let script = document.createElement('script');
    script.src = 'hello.js';
    script.async = false;
    document.head.appendChild(script);
    • 默认情况下以此形式创建的<script>元素为异步加载(相当于添加了async属性),但并不是所有浏览器都支持async属性;因此,可以明确其为同步加载【script.async = false;】
  • XHTML中的变化

    • XHTML编写规则更加严格

      • 使用JavaScript必须指定type属性为"text/javascript"

      • html中的<script>标签内会应用特殊规则,而xhtml不会(script标签内的js中的'<'在xhtml中会被解释为一个标签的开始)

    • 解决:将所有代码包含在一个CDATA块中

      • 在不支持CDATA的非XHTML兼容浏览器中不可行——CDATA标记使用JavaScript注释来抵消
      <script type="text/javascript">
      //<![CDATA[
      function compare(a,b){
      if(a<b) console.log("a is smaller");
      else if(a>b) console.log("b is smaller");
      else console.log("a is equals to b"),
      }
      //]]>
      </script>

<noscript>

  • 可以包含任何可以出现在<body>中的HTML元素,<script>除外
  • 当:
    • 浏览器不支持脚本
    • 浏览器对脚本的支持被关闭

​ 满足其一时,<noscript>中的内容将被渲染

《JavaScript高级程序设计》Chapter02 <script>元素的更多相关文章

  1. 【javascript学习——《javascript高级程序设计》笔记】DOM操作

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...

  2. javascript高级程序设计阅读笔记(一)

    javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...

  3. 《JavaScript高级程序设计》学习笔记

    系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端 ...

  4. 读书时间《JavaScript高级程序设计》一:基础篇

    第一次看了<JavaScript高级程序设计>第二版,那时见到手上的书,第一感觉真是好厚的一本书啊.现在再次回顾一下,看的是<JavaScript高级程序设计>第三版,并记录一 ...

  5. 《JavaScript高级程序设计》 -- 基本概念(一)

    之前看过好几遍<JavaScript高级程序设计>这一书,但是始终没有完完整整的看过一遍.从现在开始我会把它完整的啃一遍,每章节都记录笔记,自己的心得,加油! 由于前三章的内容比较简单,因 ...

  6. JavaScript高级程序设计学习(三)之变量、作用域和内存问题

    这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...

  7. JavaScript高级程序设计第三版.CHM【带实例】

    从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...

  8. 《Javascript高级程序设计》阅读记录(一):第二、三章

    <Javascript高级程序设计>阅读记录(一) 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释 ...

  9. javascript高级程序设计学习笔记

    javascript高级程序设计,当枕头书已经好久了~zz  现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...

  10. 《JavaScript高级程序设计》——第二章在HTML使用JavaScript

    这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第 ...

随机推荐

  1. .net中微信、支付宝回调

    需求:自助机调用接口生成二维码,用户扫描二维码付款后,回调方法里写入到数据库,自助机轮询查数据库判断用户是否付款. 1 using bk.Services.Log; 2 using bk.web.Co ...

  2. lxml库和BeautifulSoup库常用点小结

    算是本人的学习笔记吧,仅供个人学习使用. 以下内容摘自<Python3网络爬虫开发实战--崔庆才著> 1.lxml库 XPath 常用规则: 表达式 描述 nodename 选取此节点的所 ...

  3. Django新版本报错问题解决

    在创建app的时候会报如下错误: python3 manage.py startapp test django.core.exceptions.ImproperlyConfigured: SQLite ...

  4. 指针和指针运算符一起时的运算规则(比如*p++和*++p的区别)

    接下来,通过示例彻底理解自增运算符的两种用法(自减的用法与之类似,只不过是加1变成了减1). 1.++i和i++的区别 如清单1(注意代码中的注释): #include <stdio.h> ...

  5. 常见的SPA首屏优化方式

    核心是加载和解析的性能优化 加载优化的核心是资源体积和首屏资源数量. 解析优化的核心是资源体积和代码的执行性能. 加载优化 通过webpack 的code splitting合理分包:   Code ...

  6. vite vue插件打包配置

    import { defineConfig, UserConfigExport, ConfigEnv } from "vite"; import externalGlobals f ...

  7. VEU开发之element-ui中关闭dialog时并销毁

    el-dialog正常使用过程中,经常会发现一些问题,就是dialog加载的组件,每次打开都会有上次的内容,其实是加载到节点未被删除,只是反复隐藏/显示. <el-button type=&qu ...

  8. Software--电商平台系统--P3 Product Catalogy 商品目录模块

    2018-01-15  15:25:20 商品目录 服务层 控制器层 ProductCate 服务层 Controller 控制器层

  9. js - script标签的for属性和event属性

    js - script标签的for属性和event属性 <script language="javascript" for="window" event= ...

  10. openwrt 运行golang 设置时区

    转载自:https://www.ohyee.cc/post/note_go_read_openwrt_timezone openwrt 运行golang 时候发现打印时间错误.golang读取时区的过 ...