javascript 高级程序设计 (第四版) 第二章 下
文章目录
- 书接上文
- 1.行内代码与外部文件
- 2.文档模式
- 3.元素
- 4.小结
书接上文
1.行内代码与外部文件
虽然可以直接在 HTML 文件中嵌入 JavaScript 代码,但通常认为最佳实践是尽可能将 JavaScript 代
码放在外部文件中。不过这个最佳实践并不是明确的强制性规则。推荐使用外部文件的理由如下。
- 可维护性 javascript代码如果分散到很多的页面 会导致维护困难
- 缓存 浏览器会根据特定的设置缓存所有外部链接的javascript文件,意味着如果俩个页面都用到同一个文件,则改文件只需要下载一次。最终 意味着页面加载更快。
- 适应未来
2.文档模式
IE5.5 发明了文档模式的概念,即可以使用 doctype 切换文档模式
最初的文档模式有俩种 混杂模式和标准模式 后者兼容标准行为
虽然这俩种模式主要区别只体现在通过css渲染的内容方面 但对javascript 也有一些关联影响 称之为副作用
之后 又出现了第三种文档模式 : 准标准模式 主要区别在于如何对待图片元素周围的空白
标准模式通过下列几种文档类型声明开启:
<!-- HTML 4.01 Strict -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!-- XHTML 1.0 Strict -->
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- HTML5 -->
<!DOCTYPE html>
准标准模式通过过渡性文档类型(Transitional)和框架集文档类型(Frameset)来触发
<!-- HTML 4.01 Transitional -->
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!-- HTML 4.01 Frameset -->
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<!-- XHTML 1.0 Transitional -->
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- XHTML 1.0 Frameset -->
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
准标准模式与标准模式非常接近,很少需要区分。人们在说到“标准模式”时,可能指其中任何一
个。而对文档模式的检测(本书后面会讨论)也不会区分它们。本书后面所说的标准模式,指的就是除
混杂模式以外的模式。
3.元素
针对早期浏览器不支持 JavaScript 的问题,需要一个页面优雅降级的处理方案。最终,< noscript>元素出现,被用于给不支持 JavaScript 的浏览器提供替代内容
< noscript>元素可以包含任何可以出现在中的 HTML 元素,< script>除外。在下列两种情况下,浏览器将显示包含在中的内容:
- 浏览器不支持脚本
- 浏览器对脚本的支持被关闭
任何一个条件被满足,包含在中的内容就会被渲染。否则,浏览器不会渲染
中的内容。
<!DOCTYPE html>
<html> <head> <title>Example HTML Page</title> <script defer="defer" src="example1.js"></script> <script defer="defer" src="example2.js"></script> </head> <body> <noscript> <p>This page requires a JavaScript-enabled browser.</p> </noscript> </body>
</html>
这个例子是在脚本不可用时让浏览器显示一段话。如果浏览器支持脚本,则用户永远不会看到它。
4.小结
- 要包含外部javascript文件 必须将src属性设置为要包含文件的url 文件可以跟网页在同一台服务器上 也可以为与完全不同的域
- 所有< script> 元素会依照他们在网页中出现的次序被解释 在不使用defer和asunc 属性的情况下 包含在< script>元素中的代码必须严格按次序解释
- 对不推迟执行的脚本 浏览器必须解释完位于< script>元素中的代码 然后才能继续渲染页面的剩余部分,为此 通常应该把< script>元素放到页面末尾 介于主内容之后以及 </ body>之前
- 可以使用defer属性把脚本推迟到文档渲染完毕后再执行 。推迟的脚本原则上按照他们列出的次序被执行
- 可以使用async 属性表示脚本不需要等待其他脚本,同时也不阻塞文档渲染,即异步加载 。不能保证他们按页面中的出现的次序执行
- 通过使用 < noscript> 元素 可以指定浏览器不支持脚本时显示的内容 。如果浏览器支持开启用脚本 则< noscript> 元素中的任何内容都不会被渲染
javascript 高级程序设计 (第四版) 第二章 下相关推荐
- JavaScript高级程序设计第四版学习--第二十四章
title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...
- JavaScript高级程序设计第四版_英文版
[实例简介] 文件:590m.com/f/25127180-489056218-c2ed13(访问密码:551685) 以下内容无关: -------------------------------- ...
- JavaScript高级程序设计第三版.CHM【带实例】
从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...
- JavaScript高级程序设计 第4版----String
JavaScript高级程序设计 第4版----String 文章目录 JavaScript高级程序设计 第4版----String 1.JavaScript 字符 2.字符串操作方法 1.conca ...
- JavaScript高级程序设计[第3版]
JavaScript高级程序设计[第3版] package xyz.huning.toolkit.pdf;import java.io.FileOutputStream; import java.io ...
- javascript高级程序设计 第三版
网盘地址 提取码:vh81 笔记 第二章 2.1script标签 <script>元素属性:async.charset.defer.language.src.type async和defe ...
- 汇编语言 王爽 第四版 第二章 检测点2.2
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点2.2 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH . 最小肯定是偏移地址为0, ...
- JavaScript高级程序设计第三版 第3章 基本概念
第3章 基本概念 3.1 语法 3.1.1 区分大小写 3.1.2 标识符 3.1.3 注释 3.1.4 严格模式 3.1.5 语句 3.2 关键字和保留字 3.3 变量 3.4 数据类型 3.4.1 ...
- JavaScript高级程序设计 第四章---变量 作用域 内存
第四章-变量 作用域 内存 关键字:变量 作用域 内存 本章内容 通过变量使用原始值与引用值 理解执行上下文 理解垃圾回收 4.1 原始值与引用值 ECMAScript 变量可以包含两种不同类型的数据 ...
- JavaScript 高级程序设计第四章解读,总结。
第四章 变量,作用域与内存 通过变量使用原始值 - 1. 原始值与引用值+ 原始值: 最简单的数据+ 引用值: 多个值构成的对象 - 2. 原始值有哪些+ Undefined Null Boolean ...
最新文章
- oracle 查二进制字符串,检测二进制文件 - 
Oracle® Developer Studio 12.5:Discover 和 Uncover 用户指南...
- 001_SpringBoot入门
- 开始使用gradle(二)
- Catlike Coding网站文章解析 -- 1.Procedural Grid
- redux异步action_react-redux--异步Action
- 企业会计准则2020版pdf_企业会计准则及应用指南(2017版)
- [转]让内网MOSS门户也用域名访问
- 进阶之路:Java 日志框架全画传(上)
- ideal pom文件安装到maven库中_不装 maven 直接使用 IntelliJ 的插件来把本地 jar 包加入到 maven 仓库...
- java byte 相等比较_Java字节码跟真正汇编的比较
- 带你理清:ROS机器人导航功能实现、解析、以及参数说明
- 恒生电子2020届秋季招聘实录(已签offer)
- python基础之字符串(七)
- 浅谈高内聚与松耦合,各人自扫门前雪,莫管他人瓦上霜
- 云原生IDE:iVX免费的首个通用无代码开发平台
- 微信小程序面试题(个人学习)
- 【NLP模型笔记】Intro || Word2vec词向量模型
- 探寻宝藏-双进程DP(优化版)
- 什么是泛型?泛型的基本原理与使用优势。
- 如何获取不同年份的poi_抖音营销案例爆红抖音,万人争领,屈臣氏“魔盒”如何联动线上线下?...
热门文章
- Qt5.2.1 + VS2010安装错误(Unable to find a Qt build)
- Java爬虫-使用爬虫下载千张美女图片!
- 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(4)
- python网页抓取与按键精灵原理一样吗_Python——爬虫——爬虫的原理与数据抓取...
- Win10如何安装VC6
- CC2530射频通信
- 台达plc用c语言编程软件,台达plc编程
- 计算机组成原理(微课版)谭志虎pdf资源
- 北京54坐标和经纬度坐标转换算法(C++)
- php社交项目源代码,PHP交友聊天源码,社交网络网站源代码,带即时聊天,带聊天室功能,带原生APP源码...