嗯,经过了一周的时间,今天终于将《JavaScript DOM编程艺术(第2版)》这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推荐给想了解HDOM的相关人员!首先非常感谢作者写出了这么好的一本书,谢谢!书中的内容比较多,我仅记下我认为对自己和他人有所帮助的一些内容!

嗯,首先还是让代码来说话吧!

下面是两段此书中反复强调且通用的经典代码段

1:相当的经典和实用,尤其是当需要为页面加载函数绑定多个函数的时候

/**
* [addLoadEvent 为页面的加载事件绑定执行的函数]
* @param {[function]} func [打算在页面加载完毕时执行的函数]
*/
function addLoadEvent(func)
{
var oldonload=window.onload;
if(typeof window.onload != 'function'){
window.onload=func;
}else{
window.onload=function(){
oldonload();
func();
}
}
}

2:也相当的经典和实用,特别对于插入新的标签元素的时候

/**
* [insertAfter 将一个新的标签元素插入到目标元素的后面]
* @param {[DOMElement]} newElement [要插入的新标签元素]
* @param {[DOMElement]} targetElement [要插入的目标元素]
*/
function insertAfter(newElement,targetElement)
{
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement){
parent.appendChild(newElement);
}else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}

第二本书作者不断的强调的事情

1)对于在浏览器中的网页而言本质上是三位一体的共同体,结构层、表示层、行为层,结构层由超文本标记语言负责,比如:HTML;表现层由CSS负责;行为层由JavaScript和DOM负责,书写代码一定要尽量三层分离各负其责。

2)书写代码,注意的地方有许多,对于网页代码而言,本书作者着重强调渐进增强、平稳退化、三层分离、简明易读、抽象通用。三层分离、简明易读就不用多解释了,很容易理解。抽象的目的就是为了通用重用,通常是将不变的因子用可变的因子来代替,比如:方法中传递的参数,原来不用传递可能是硬编码写在方法体里面的,变为函数的参数后,这个函数就更加的灵活啦!

渐进增强:是非常重要的一个代码书写原则,意思是这样的,对于网页而言,我们书写代码的时候总是应该从最核心的部分,也就是从内容开始,换言之在网页的三层结构中结构层是最为重要的一层,CSS主要是用来加强网页的显示样式,JavaScript 和 DOM主要是用来实现用户也网页的交互。当然,我觉得做任何事情可能都是如此的,分清主次、把握全局、抓住重点对任何的事情都是相当重要的。

平稳退化:也是一个非常重要的代码书写原则,平稳退化的重点在于强调在坚持以渐进增强的原则书写代码的基础之上,能够保证我们的程序更加的健壮,有更好的兼容性,对于一些缺乏必要的CSS和DOM支持的访问者,我们的网站仍可以为其提供一些最为核心的内容,不至于网页完全失去了价值。在代码中的体现,主要是首先要判断浏览器对某些方法、属性等的支持能力,然后在决定程序的下一步走向!

3)看待网页要能图形化的看待,在我们的眼中,DOM是一棵树,是一棵倒挂的树,文档中的每一个元素都对应着树中的每一个节点,以这种观点来去书写代码就会容易许多的,对于文档中元素的查找、修改、删除、替换、添加等操作就非常的形象化啦!好像我们玩一个好玩的玩具一样,一切都非常的清晰明了,摆在眼前,CSS编程了彩笔,JavaScript变成了传感器,DOM是原料加工场。

4)分析问题和解决问题的关键,是化繁为简、分而治之、循序渐进的一步一步的来,先将解决问题的思路一步步的想好列出来,至少最主要的要非常的清晰明确,然后先实现一个简单的核心的功能,然后再慢慢的扩展它的能力,让他实现平稳退化,再然后抽象化使其可以重用通用。

5)思考问题除了思考它能不能的问题,还应该思考它应不应该的问题,比如:现在的CSS也有处理一些事件的功能在,不过最好这样的事情还是交给JavaScript DOM 来做!

JavaScript DOM编程艺术学习笔记(一)的更多相关文章

  1. JavaScript DOM编程艺术-学习笔记

    发现基础不是很好,补习一下.37买了2本书(dom编程和高级程序设计). 以前读书总是自己勾勾画画,有点没意思.现在写下来,说不定会成为传世经典.哈哈...........随便扯扯淡. 第一天(201 ...

  2. 【干货】JavaScript DOM编程艺术学习笔记1-3

    从7月29号到8月8号,断断续续地看完了这本书,做了部分实践联系.总体感觉本书真的只能算是个入门,学完之后看到库的那一章才感觉是个大坑,实践中大部分应该都是用的现成的库吧,所以还要重新学习一个库,但是 ...

  3. JavaScript DOM编程艺术学习笔记-第二章JavaScript语法

    一.JavaScript示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  4. JavaScript DOM编程艺术学习笔记-第一章JavaScript简史

    一,JavaScript的起源 JavaScript是Netscape与Sun公司合作开发,它是一种脚本语言,通常只能通过Web浏览器去完成一些操作.JavaScript为程序员提供了一些操控Web浏 ...

  5. 【干货】JavaScript DOM编程艺术学习笔记10-12【完】

    十.用JavaScript实现动画效果 鼠标放到链接上,每次只显示图片的一小部分,加快加载速度. js: function prepareSlideshow(){ //对象检测 if(!documen ...

  6. 【干货】JavaScript DOM编程艺术学习笔记4-6

    四.案例研究:JavaScript图片库 js: function showPic(whichpic){ //取得链接 var source=whichpic.getAttribute("h ...

  7. JavaScript DOM编程艺术-学习笔记(第八章、第九章)

    第八章 1.小知识点: ①某些浏览器要根据DOCTYPE 来决定页面的呈现模式(标准模式 / 怪异模式--也称兼容模式): 兼容模式意味着浏览器要模仿老一辈的浏览器的怪异行为,来让老站点得到运行,并让 ...

  8. JavaScript DOM编程艺术-学习笔记(第七章)

    第七章: 1.dom方法创建并且插入标签:(这种方法并没有改变文档的物理内容,而是在改变dom树) ①创建元素节点:createElement(); ②内部前插入:appendChild() ③创建文 ...

  9. JavaScript DOM编程艺术-学习笔记(总结一)

    1.1)dom-core方法:(不专属于js,支持dom的任何一种程序设计语言都可以使用它,它们的用途,也不仅限于处理网页,也可以用来处理任何一种标记语言编写处理的文档)  ①getElementBy ...

随机推荐

  1. can't run as root without the -u switch

    [root@localhost ~]# /usr/local/memcache/bin/memcached can't run as root without the -u switch [root@ ...

  2. 【freemaker】之自定义变量,特殊变量 globals ,循环对象取值

    entity public class Employee { private Integer id; private String name; private Integer age; private ...

  3. MySQL运行出错:无法连接驱动、无root访问权限解决办法

    按照疯狂java讲义的13.3的程序,发现程序运行出错. 1.点开runConnMySql.cmd运行文件,出现如下结果: 2.用Editplus进行编译运行,如下结果: 报错定位到程序第18行,而第 ...

  4. [dts]Device Tree格式解析

    转自:http://blog.csdn.net/airk000/article/details/21345159 目录: 1. 作用 2. 基本数据格式 3. 一些基本概念 4. 工作方式 a. 地址 ...

  5. iphone dev 入门实例5:Get the User Location & Address in iPhone App

    Create the Project and Design the Interface First, create a new Xcode project using the Single View ...

  6. jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析

    jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析: 同样的请求同时请求了2次,然后第二次的请求把第一次的给刷掉了! (比如:<div on ...

  7. Form_Form Builder国际化多语言开发(案例)

    2014-05-06 Created By BaoXinjian

  8. BEvent_标准控件Event的用法(案例)(待整理)

    2014-06-06 Created By BaoXinjian

  9. ERP_Oracle Erp 11i 和 R12的区别概述(概念)

    2014-06-26 Created By BaoXinjian

  10. svn 中 版本回退

    譬如有个文件,有十个版本,假定版本号是1,2,3,4,5,6,7,8,9,10. Revert to this revision: 如果在版本6这里点击“Revert to this revision ...