1. script标签

  • <script>标签的type属性值如果是module,代码会被当成ES6模块,只有在这个时候代码中才能出现import和export关键字
  • 无论是内嵌JS代码还是外联JS代码,在代码被计算完成之前,页面剩余的内容不会被加载,即<script>会造成页面阻塞(阻塞时间包含下载文件的时间)

JS文件的文件扩展名.js并不是必须的,浏览器不会检查JS文件的文件扩展名。但服务器经常会根据文件扩展名来相应MIME类型,所以如果不适用.js扩展名,就要确保服务器能返回正确的MIME类型

1.1 标签位置

  • 通常将JS引用放在<body>元素中的页面内容后面以防止阻塞页面加载

1.2 defer推迟执行脚本

  • 只对外部脚本文件有效
  • 脚本会被延迟到整个页面都解析完毕后在运行。即告诉浏览器:立即下载,但延迟执行
  • HTML5规范要求脚本应该按照他们出现的顺序执行,但实际上不一定是这样,所以最好只使用一次defer

1.3 async异步执行脚本

  • 只对外部脚本文件有效
  • 和defer效果类似,但明确脚本不会按顺序执行
  • 异步脚本不应该在加载期间修改DOM

1.4 动态加载脚本

let script = document.createElement("script");
script.src = "./js/tools.js";
// 将元素添加到DOM中后就会立即发送请求加载js文件
// 默认是以异步的方式加载的
document.body.appendChild(script);
  • 以这种方式获取资源对浏览器预加载器是不可见的,可能会严重影响性能,若想让预加载器知道这些动态文件的存在,可以在文档头部<head>中显式声明:
<link rel="preload" href="./js/tools.js">

2. noscript标签

  • <noscript>可以包含任何可以出现在<body>中的HTML元素
  • 在下面两种情况下浏览器将显示包含在<noscript>中的内容
    • 浏览器不支持脚本(如今浏览器已经100%支持JavaScript)
    • 浏览器对脚本的支持被关闭

第2章 HTML中的JavaScript的更多相关文章

  1. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  2. 《JavaScript高级程序设计(第3版)》阅读总结记录第二章之在HTML中使用JavaScript

    本章目录: 2.1 <script> 元素 2.1.1 标签的位置 2.1.2 延迟脚本 2.1.3 异步脚本 2.1.4 在XHTML 中的用法 2.1.5 不推荐使用的语法 2.2 嵌 ...

  3. 第2章 在 HTML中 使用 JavaScript

    第2章 在 HTML中 使用 JavaScript 2.1 script 元素 2.1.1 标签的位置 2.1.2 延迟脚本 2.1.3 异步脚本 2.1.4 在XHTML中的使用 2.1.5 不推荐 ...

  4. javascript高级编程3第二章:在html中使用javascript

    2.1 <script>元素 向html页面中插入javascript的主要方法,就是使用<script>元素.这个元素被加入到正式的html规范中.html4.01为< ...

  5. 《JavaScript 高级程序设计》第二章:在HTML中使用JavaScript

    script 标记是 netspace 公司最早为在 html中引入 javascript代码而创造的HTML元素,并最终被 HTML规范采纳. script 标记有四个比较重要的属性: src ty ...

  6. 第二章 在Html中使用JavaScript

    https://www.jianshu.com/p/8247a9401725 2.1 Script元素 https://developer.mozilla.org/en-US/docs/Web/HTM ...

  7. 混合应用中的javascript实践

    混合应用中的javascript实践 混合应用(hybird app) 在几年前便进入大众视野,近来更是越发风生水起,深受人民群众的喜爱. 目录 概念 什么是混合应用 混合方式 交互 方法注入 参数传 ...

  8. Android WebView中的JavaScript代码使用

    在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己创建接口在你的应用和Java ...

  9. 《jQuery风暴》第2章 必须知道的JavaScript知识

    第2章 必须知道的JavaScript知识 JavaScript是jQuery应用的基础,掌握JavaScript这门语言是使用jQuery的基础条件.本章不会全面细致的讲解JavaScript的全部 ...

随机推荐

  1. XSS挑战赛(2)

    进入第六关 简单判断过滤情况 <>script"'/ 查看源代码 可以看到第二个红框部分跟之前类似,闭合双引号尝试进行弹窗 "><script>ale ...

  2. 派大星的烦恼MISC

    挺有意思的杂项,python将二进制转图片的时候出现的图片不像二维码,想看题解的时候发现网上的大部分题解都是直接转发,更有意思了. 题目是派大星的烦恼,给了我们一张粉红图片,放进010editor里面 ...

  3. ASP.NET Log4net数据库日志新增记录客户端ip

    LOG4数据库记录器XML配置 1 <appender name="ADONetAppender" type="log4net.Appender.ADONetApp ...

  4. python学生管理名片

    name=['刘备','关羽','张飞','赵云','马超'] print('名片管理系统1.0\n1.增加一个新的名片\n2.删除一个名片\n3.修改一个名片\n4.查找一个名片\n5.退出名片管理 ...

  5. 手动 jq 触发 动态的 layui select change 事件

    var s= $('#province').val(); //先获取   默认选中的第一个 option 的值 ( value)    var select = 'dd[lay-value=' + s ...

  6. 题解 CF1062E Company

    \(\texttt{Solution}\) 数据结构学傻的蒟蒻来写一个新思路 这题的正解是利用多个结点的 \(lca\) 是 \(dfs\) 序最大的结点和 \(dfs\) 序最小的结点的 \(lca ...

  7. 题解-CF1307G Cow and Exercise

    CF1307G Cow and Exercise 给 \(n\) 点 \(m\) 边的带权有向图,边 \(i\) 为 \((u_i,v_i,w_i)\).\(q\) 次询问,每次给 \(x_i\),问 ...

  8. rsync 参数说明及使用参数笔记好文摘抄

    一.前言 最近发现rsync挺好用的--不过参数有点多,所以这儿写一篇给自己以后要用的时候做个参考. 二.参数说明 这儿全是我翻资料连蒙带猜(有些实在是不好解释)翻译出来的,请各位转载的留个名啊,虽然 ...

  9. 深入分析 Java、Kotlin、Go 的线程和协程

    前言 协程是什么 协程的好处 进程 进程是什么 进程组成 进程特征 线程 线程是什么 线程组成 任务调度 进程与线程的区别 线程的实现模型 一对一模型 多对一模型 多对多模型 线程的"并发& ...

  10. JavaSE21-网络编程

    1.网络编程入门 1.1 网络编程概述 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共 ...