JavaScript DOM编程艺术(第2版)读后总结

最近花了整整4天时间看完了JavaScript DOM编程艺术(第2版),这本书讲得是非常底层的DOM操作,读完会对DOM有一个更加深刻的认识。DOM不专属于html网页和javascript,任何支持DOM的程序设计语言都可以使用它,它也可以用来处理任何一种标记语言(比如XML)编写出来的文档。除了标准DOM外,作者还介绍了一些HTML专有属性,比如innerHTML,但是任何时候都可以用标准DOM来替代innerHTML,虽然需要多编写一些代码才能获得同样的效果,但是DOM提供了更高的精确性和更强大的功能。
作者用一个JavaScript图片库作为例子贯穿全书讲解了DOM操作和优化,并且考虑了浏览器的兼容,尽可能符合渐进增强和平稳退化原则,最后讲解了不得不依赖JavaScript实现的一些动画效果,并且简单介绍了HTML5的出现带来的一些新的属性和方法。总之,本书非常适合前端入门学习,理解了最底层操作原理,也就可以循序渐进理解上层高级框架背后的设计思想。

以下列出书中比较重要的知识点,供大家参考学习:

1,DOM是Document, Object, Model的缩写,即文档对象模型,当创建了一个网页并把它加载到Web浏览器中时,DOM就在幕后悄然而生,它把你编写的网页文档转换成一个文档对象。并且提供了一套具有统一标准的API,程序和脚本可以通过这个接口动态地访问和修改文档的内容、结构和样式,增强了文档交互能力。CSS也可以改变文档的样式和布局。
DOM的工作模式:先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。

2,最好的做法是将

3,JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量。在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。
使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内,同名变量在不同的函数体内互不冲突。为了修补JavaScript这一严重设计缺陷,ECMA在后续规范中推出了strict模式,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

4,命名规则:在命名变量时,用下划线分隔各个单词;驼峰格式可以用于函数,方法和对象属性名。

5,web性能调优
5.1,在脚本中尽量减少DOM树的遍历访问。
5.2,尽量减少文档中的标记数量,过多不必要的元素只会增加DOM树的规模,进而增加遍历DOM树以查找特定元素的时间。
5.3,尽可能地将脚本文件进行合并,减少js文件的加载数量。脚本在标记中的位置对页面的初次加载时间也有很大影响。如果将js脚本放在区域,会导致浏览器无法并行加载其他文件(如图像和脚本)。一般来说,根据Http规范,浏览器每次从同一个域名中最多只能同时下载两个文件。而在下载脚本期间,浏览器不会下载其他任何文件,即使是来自不同的域名,所有其他资源都要等脚本加载完毕后才能下载。将所有

6,节点类型包括元素节点,文本节点和属性节点,可以通过document.getAttribute和document.setAttribute动态获取和创建属性节点的值。通过document.createElement和document.createTextNode动态创建元素节点和文本节点,只有元素节点可以充当父节点,可以调用appendChild添加新的子节点,包括元素节点和文本节点。

7,Ajax简介
7.1,在Ajax出现以前,发送和接收都是整个页面,尽管页面中只有一小部分发生变化,也要刷新和重新加载整个页面。Ajax的主要优势就是对页面的请求以异步方式发送到服务器,服务器不会用整个页面来响应请求,它会在后台处理请求,与此同时用户还能继续浏览页面并与页面交互。你的脚本则可以按需加载和创建页面内容。
7.2,Ajax技术的核心是XMLHttpRequest对象,这个对象充当着浏览器中脚本(客户端)与服务器之间的中间人角色。以往的请求都由浏览器发出,而javaScript通过这个对象可以自己发送请求,同时也自己处理请求。
7.3,使用Ajax要注意同源策略。使用XMLHttpRequest对象发送的请求只能访问与其所在的HTML处于同一个域中的数据,不能向其他域发送请求。此外,有些浏览器还会限制Ajax请求使用的协议。

8,HTML5的文档声明同样也支持HTML和XHTML,对于向img类的闭合标签,为了与早期浏览器保持兼容,应该在反斜杠前保留一个空格。在任何有效的XML文档中,核心DOM方法总能畅行无阻。

9,当把鼠标悬停在某个元素的上方时,有些浏览器会弹出一个显示title属性的值。

10,DOM用驼峰命名对应CSS中用横线链接的名称,例如fontFamily对应font-family,字体大小单位em或者px保持一致。DOM只能操作内嵌样式的style属性,不能操作.css文件或者用

11,如果把position属性值为absolute的元素A放在一个position属性值为relative的元素B,B就成为A的容器元素,而A将在B的显示区域按absolute方式进行摆放。

12,谈到Web设计,最准确的理解是把网页看成三个层:
(1)结构层
(2)样式层
(3)行为层
这三个层分别对应不同的技术,分别是:
(1)超文本标记语言(HTML)
(2)层叠样式表(CSS)
(3)JavaScript和文档对象模型(DOM)
还可以再加一层,也就是浏览器的JavaScript API,包括cookie和window等。HTML5的出现将上述层级整装到一个小集合中。DOM的精髓是要尽量分离结构层,表示层和行为层,降低它们的耦合,但是H5的出现使得它们之间的界限模糊了.

发布了48 篇原创文章 · 获赞 27 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41480546/article/details/90701267