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版》的更多相关文章

  1. 读书笔记(高性能javascript)(一)

    1.加载与执行: (1)将脚本放在底部:(否则会阻塞) (2)由于每个<script>标签初始下载时都会阻塞页面渲染,所以减少页面包含的<script>标签数量有助于改善这一情 ...

  2. 读书笔记(高性能javascript)(二)

    5. 字符串和正则表达式: (1) 在大多数浏览器中,数组项合并(Array.prototype.join)比其他字符串连接方法更慢,但它却在IE7及更早版本浏览器中合并大量字符串唯一高效的途径: ( ...

  3. 【读书笔记--cookie】JavaScript权威指南 第六版

    遇到一些问题需要用cookie处理,正好读了一下犀牛书关于cookie的介绍,整理了一些笔记. cookie是指web浏览器存储的少量数据,同时它是与具体的web页面或者站点相关的. cookie数据 ...

  4. 【读书笔记】-- 你不知道的JavaScript

    <你不知道的JavaScript>是一个不错的JavaScript系列书,书名可能有些标题党的意思,但实符其名,很多地方会让你有耳目一新的感觉. 1.typeof null === &qu ...

  5. 读高性能JavaScript编程学英语 第一章第三页第一段话

    When the browser encounters a <script> tag, as in this HTML page, there is no way of knowing w ...

  6. javascript 数据结构和算法读书笔记 > 第一章 javascript的编程环境和模型

    1.变量的声明和初始化 必须使用关键字 var,后跟变量名,后面还可以跟一个赋值表达式. var name; var age = 5; var str = 'hello'; var flg = fal ...

  7. 《JavaScript 高级程序设计》读书笔记二 使用JavaScript

    一   <script>元素 a.四个属性: async:立即异步加载外部脚本: defer:延迟到文档完全被解析再加载外部脚本: src:外部脚本路径: type:脚本语言的内容类型: ...

  8. 第四周读书笔记——读《我是一只IT小小鸟》有感

             读<我是一只IT小小鸟>有感 这是邓老师倾力推荐的一本书.这本书的标题化用了我们耳熟能详的歌词,算是较有新意吧.更重点在于,这本书的作者不是哪一位大牛,而是一群刚刚走出校 ...

  9. 读书笔记(05) - 事件 - JavaScript高级程序设计

    HTML依托于JavaScript来实现用户与WEB网页之间的动态交互,接收用户操作并做出相应的反馈,而事件在此间则充当桥梁的重要角色. 日常开发中,经常会为某个元素绑定一个事件,编写相应的业务逻辑, ...

  10. 读书笔记(03) - 性能 - JavaScript高级程序设计

    作用域链查找 作用域链的查找是逐层向上查找.查找的层次越多,速度越慢.随着硬件性能的提升和浏览器引擎的优化,这个慢我们基本可以忽略. 除了层级查找损耗的问题,变量的修改应只在局部环境进行,尽量避免在局 ...

随机推荐

  1. javascript自动转换大小写

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  2. php中静态变量和静态方法

    1,静态变量:所有对象共享的变量成为静态变量.静态变量类似于全局变量,不过全局变量破坏对象的封装性,因此其对应于面向过程:静态变量对应于面向对象. 2,全局变量,全局变量的使用实例如下,声明全局变量时 ...

  3. sql-server数据库中利用触发器实现表与表之间的级联删除

    create trigger Delete_Student --创建一个触发器 on student instead of delete as declare @sno varchar() selec ...

  4. Nginx 配置文件详解

    user nginx ; #用户 worker_processes 8; #工作进程,根据硬件调整,大于等于cpu核数 error_log logs/nginx_error.log crit; #错误 ...

  5. Glut 回调函数小结

    2014-04-08  16:25:50   void glutDisplayFunc(void (*func)(void)); 注册当前窗口的显示回调函数 参数: func:形为void func( ...

  6. C/C+小记

    1.struct与typedef struct struct Student{int a;int b}stu1; //定义名为Student的结构体,及一个Student变量stu1 struct { ...

  7. msmms (一) sms与mms区别

    sms与mms区别 SMS,Short Messaging Service短信业务,可以通过手机等移动设备发送文本型短信.SMS这个术语最早在80年代初期出现,但一直到了90年代初才开始进入商用市场, ...

  8. Constructing Roads (MST)

    Constructing Roads Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  9. cocos2d-x避免手动修改android.mk文件来编译

    编辑android.mk文件,替换为如下内容 LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir) include $(CLEAR_VAR ...

  10. Java报错原因汇总

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序 遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的 ...