【读书笔记】读《JavaScript DOM 编程艺术-第2版》
1、DHTML
DHTML曾被认为是HTML/XHTML、CSS和JavaScript相结合的产物,就像今天的HTML5那样,但把这些东西真正凝聚在一起的是DOM。如果真的需要来描述这一过程的话,“DOM脚本程序设计”更精确,它表示使用W3C DOM来处理文档和样式表。
2、关联数组
数组的下标不局限于数字,可以使用字符串来标识语义的数组。
3、宿主对象
除了内建对象,还可以在JavaScript脚本里使用一些已经预先定义好的其他对象。这些对象不是有JavaScript语言本身而是由它的运行环境提供的。具体到WEB应用,这个环境就是浏览器。有浏览器提供的预定义对象被称为宿主对象。
4、DOM定义
D:当创建了一个网页并把它加载到Web浏览器中时,DOM就在幕后悄然而生。它把你编写的网页文档转换为一个文档对象。
O:是一种自足的数据集合。与某个特定对象相关联的变量被称为这个对象的属性;只能通过某个特定对象去调用的函数被称为这个对象的方法。JavaScript里的对象分为三种类型——
1> 用户自定义对象
2> 内建对象:内建在JavaScript语言里的对象,如String、Math、Date、Array、Event等
3> 宿主对象:由浏览器提供的对象,如window、document等
M:代表一种模型,DOM把一份文档表示为一棵树,更具体的说,DOM把文档表示为一棵家谱树。
5、节点(核心):元素节点、属性节点、文本节点
6、获取元素:
getElementById
getElementsByTagName
getElementsByClassName(HTML5 DOM)
7、获取和设置属性
getAttribute
setAttribute
8、flash和JavaScript的遭遇
会出现滥用、复制粘贴现成代码的现象,然后这种现象会导致浏览器下载网页的速度变慢,当人们使用这些脚本称为一种潮流的时候,那么这种习惯就很难改正了。自然而然容易得到很坏的名声。
10、“javascirpt:”伪协议
让我们通过一个链接来调用JavaScript。
11、不管什么时候,只要是查找DOM中的某些元素,浏览器都会搜索整个DOM树,从中查找可能匹配的元素。
12、一般来说,根据HTTP规范,浏览器每次从同一个域名中最多同时下载两个文件。而在下载脚本期间,浏览器不会下载其他任何文件,即使是来自不同域名文件也不会下载,所有其他资源都要等脚本加载完毕后才能下载。
13、Ajax技术的核心就是XMLHttpRequest对象。这个对象充当着浏览器中的脚本(客户端)与服务器之间的中间人的角色。以往的请求都由浏览器发出,而JavaScript通过这个对象可以自己发出请求,同时也自己处理响应。
14、在使用Ajax时,千万要注意同源策略。使用XMLHttpRequest对象发送的请求只能访问与其所在的HTML处于同一域中的数据,不能向其他域发送请求。此外,有些浏览器还限制Ajax请求使用的协议。比如在Chrome中,如果你使用file://协议从自己的硬盘里加载example.txt文件,就会看到“Cross origin requests are only supported for HTTP”(跨域请求只支持HTTP协议)的错误消息。
15、JavaScript不应该做什么
渐进增强原则基于这样一种思想:你应该总是从最核心的部分,也就是从内容开始。应该根据内容是用标记实现良好的结构;然后再逐步加强这些内容。这些增强工作既可以是通过CSS改进呈现效果,也可以使通过DOM添加各种行为。如果你正在是用DOM添加核心内容,那么你添加的时机未免太迟了,内容应该在刚开始编写文档时就成为文档的组成部分。
平稳退化:如果你按照渐进曾庆的原则去充实内容,你为内容添加的样式和行为就自然支持平稳退化,那些缺乏必要的CSS和DOM支持的访问者仍可以访问到你的核心内容。如果你用JavaScript去添加这些重要内容,它就没法支持平稳退化,不支持JavaScript,就看不到内容。
16、常用库
Dojo
jQuery
MooTools
Prototype
YUI
17、内容分发网络(CDN)
为了让用户尽可能快地加载到页面。对于库来说,如果有很多站点要使用同一个库,那么最好是把这个库托管一个公共服务器上,以便所有站点共享和访问。这样,当用户从一个站点跳到另一个站点时,他们就不用再重复下载相同的文件了。
内容发布网络可以解决分布共享库的问题。CDN就是一个由服务器构成的网络,这个网络的用途就是分散存储一些公共的内容。CDN中的每台服务器都包含库的一份副本,这些服务器分布在世界上不同的国家和地区,以便达到利用贷款和加快加载的目的。浏览器访问库的时候使用一个公共的URL,而CDN的底层则通过地理文职最近、速度最快的服务器提供相应的文件,从而解决了整个系统中的瓶颈问题。
18、这本书的logo

【读书笔记】读《JavaScript DOM 编程艺术-第2版》的更多相关文章
- 读书笔记(高性能javascript)(一)
1.加载与执行: (1)将脚本放在底部:(否则会阻塞) (2)由于每个<script>标签初始下载时都会阻塞页面渲染,所以减少页面包含的<script>标签数量有助于改善这一情 ...
- 读书笔记(高性能javascript)(二)
5. 字符串和正则表达式: (1) 在大多数浏览器中,数组项合并(Array.prototype.join)比其他字符串连接方法更慢,但它却在IE7及更早版本浏览器中合并大量字符串唯一高效的途径: ( ...
- 【读书笔记--cookie】JavaScript权威指南 第六版
遇到一些问题需要用cookie处理,正好读了一下犀牛书关于cookie的介绍,整理了一些笔记. cookie是指web浏览器存储的少量数据,同时它是与具体的web页面或者站点相关的. cookie数据 ...
- 【读书笔记】-- 你不知道的JavaScript
<你不知道的JavaScript>是一个不错的JavaScript系列书,书名可能有些标题党的意思,但实符其名,很多地方会让你有耳目一新的感觉. 1.typeof null === &qu ...
- 读高性能JavaScript编程学英语 第一章第三页第一段话
When the browser encounters a <script> tag, as in this HTML page, there is no way of knowing w ...
- javascript 数据结构和算法读书笔记 > 第一章 javascript的编程环境和模型
1.变量的声明和初始化 必须使用关键字 var,后跟变量名,后面还可以跟一个赋值表达式. var name; var age = 5; var str = 'hello'; var flg = fal ...
- 《JavaScript 高级程序设计》读书笔记二 使用JavaScript
一 <script>元素 a.四个属性: async:立即异步加载外部脚本: defer:延迟到文档完全被解析再加载外部脚本: src:外部脚本路径: type:脚本语言的内容类型: ...
- 第四周读书笔记——读《我是一只IT小小鸟》有感
读<我是一只IT小小鸟>有感 这是邓老师倾力推荐的一本书.这本书的标题化用了我们耳熟能详的歌词,算是较有新意吧.更重点在于,这本书的作者不是哪一位大牛,而是一群刚刚走出校 ...
- 读书笔记(05) - 事件 - JavaScript高级程序设计
HTML依托于JavaScript来实现用户与WEB网页之间的动态交互,接收用户操作并做出相应的反馈,而事件在此间则充当桥梁的重要角色. 日常开发中,经常会为某个元素绑定一个事件,编写相应的业务逻辑, ...
- 读书笔记(03) - 性能 - JavaScript高级程序设计
作用域链查找 作用域链的查找是逐层向上查找.查找的层次越多,速度越慢.随着硬件性能的提升和浏览器引擎的优化,这个慢我们基本可以忽略. 除了层级查找损耗的问题,变量的修改应只在局部环境进行,尽量避免在局 ...
随机推荐
- js中数组以及for循环的使用
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...
- 解决IE apk变成zip:Android 手机应用程序文件下载服务器 配置解决方法
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...
- 初学JDBC,调用存储过程
在JDBC简单封装的基础上实现 public class UserDao{ public static void testGetUser(String userName) throws Excepti ...
- ModSecurity SQL注入攻击
ModSecurity是 一个入侵探测与阻止的引擎,它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.它可以作为Apache Web服务器的一个模块或单独的应用程序来运行.ModSecur ...
- WAF绕过小结
WAF介绍 什么是WAF? Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品. 基本/简单绕过方法: 1.注释符 http://www.site. ...
- Emag eht htiw Em Pleh(imitate)
Emag eht htiw Em Pleh Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2901 Accepted: ...
- 小白科普之JavaScript的函数
一 概述 1.1 函数声明 (1)function命令 函数就是使用function命令命名的代码区块,便于反复调用.这种声明方式叫做函数的声明(Function Declaration). func ...
- 5款Linux最佳照片管理软件
在谈到 Linux 中的应用程序时,对于不同的用户.不同的使用场景以及不同的使用习惯,在同一类应用当中,总会有多种软件可供选择和备选.就 Linux 中的照片管理软件来说,相信此前的 Google P ...
- 将服务器上的myql数据库导入本地数据库
文章是从我的个人博客上粘贴过来的, 大家也可以访问 www.iwangzheng.com 首先登录到服务器上,进入文件夹,我们这边的是m-cms $mysqldump -uroot mos > ...
- 对target="framename"的理解(实现分页的demo)
先上图,说明一下我主要想实现什么功能. 一.演示图 演示首页: 演示内容页(包括按钮切换页+模板内容页): 演示首页到演示内容页的一个演变过程: