<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>中的内容将被渲染

最新文章

  1. Hadoop原理介绍
  2. JMeter Webservice测试计划
  3. PDF2
  4. go语言常用函数:cap
  5. 关于ZIP大文件压缩
  6. IOS触摸事件和手势识别
  7. xp重装系统后恢复Linux启动
  8. MySql 取一天的开始时间和结束时间
  9. JDK源代码学习系列07----Stack
  10. C# 数据库连接测试以及备份
  11. Mybatis 一对一,一对多,多对一,多对多的理解
  12. Java - extends
  13. 上传文件没有写权限Access to the path is denied
  14. python安装MySQLdb:在windows下或linux下(以及eclipse中pydev使用msqldb的配置方法)
  15. 通过命令修改mysql的提示符(转)
  16. [leetcode]68. Text Justification文字对齐
  17. sql中return和returns的区别
  18. 两种 AuthorizationSchemes 在 ASP.NET Core 2
  19. java socket编程中backlog的含义(zz)
  20. php字符串 统计个数

热门文章

  1. 特别好用的题库(oj)
  2. gin websocket
  3. uniapp 跳转链接
  4. vue 使用 swiper vue-awesome-swiper
  5. python连接Oracel、postgreSQL、SQLserver、Mysql、mongodb、redis等常用数据库方法汇总
  6. drf从入门到飞升仙界 03
  7. Rsync已过时?替代文件同步软件了解一下
  8. iOS开发 React Native与iOS交互汇总
  9. Godot从编辑器创建自定义场景类型对象
  10. Java-AES256加密Util