这不是书评,是读第一遍的摘录。[读的是第一版的中文电子书]
前言
这是一本讲述一种程序设计语言的书,但它也适合Web设计师阅读。具体地说,本书是为那些喜欢使用CSS和XHTML并愿意遵守编程规范的Web设计师们编写的
。
第一章 JavaScript简史
第二章 JavaScript语法
即使没有把多条语句放在同一行上,但在每条语句的末尾加上一个分号,也是一种良好的编程习惯。
在JavaScript脚本中,如果程序员在对某个变量进行赋值之前未对其做出声明,赋值操作将自动声明该变量。虽然JavaScript没有要求程序员必须这么做,但提前对变量做出声明仍是一种良好的编程习惯。
在声明或填充数组时写出Array关键字是一个良好的编程习惯。
{JavaScript的数组不需要管元素类型}
数组就是一种JavaScript内建对象。当我们使用new关键字去初始化一个数组时,其实是在创建一个Array对象的新实例。
第三章 DOM
DOM是“Document Object Model(文档对象模型)”的首字母缩写。如果没有document(文档),DOM也就无从谈起。当创建了一个网页并把它加载到Web浏览器中时,DOM就在幕后悄然而生。它将根据你编写的网页文档创建一个文档对象。
如果把各种文档元素想象成一棵家谱树上的各个节点的话,我们就可以用同样的记号来描述DOM。不过,与使用“家谱树”这个术语相比,把一份文档称为一棵“节点树”更准确。
getElementById(),文档中的每一个元素都对应着一个对象,利用DOM提供的方法,我们可以把与这些元素相对应的任何一个对象筛选出来。
一般来说,我们用不着为文档里的每一个元素都分别定义一个独一无二的id值,我们还可以使用getElementsByTagName()方法。
文档中的每一个元素节点都是一个对象。
通过setAttribute()方法对文档做出的修改,将使得文档在浏览器窗口里的显示效果和/或行为动作发生相应的变化,但我们在通过浏览器的view source选项去查看文档的源代码时看到的仍将是原来的属性值——也就是说,setAttribute()方法做出的修改不会反映在文档本身的源代码里。这种“表里不一”的现象源自DOM的工作模式:先加载文档的静态内容、再以动态方式对它们进行刷新,动态刷新不影响文档的静态内容。这正是DOM的真正威力和诱人之处:对页面内容的刷新不需要最终用户在他们的浏览器里执行页面刷新操作就可以实现。
第四章 案例研究:JavaScript美术馆
我想通过onclick事件处理函数去触发的动作是调用showPic()函数,而想调用这个函数,就必须向它传递一个参数:一个带有href属性的元素节点。在图片库HTML文档里,当我把onclick事件处理函数嵌入一个链接时,我需要把那些链接本身用作showPic()函数的参数。{this}
JavaScript代码是包含在一对引号之间的:我们可以把任意数量的JavaScript语句放在这对引号之间,只要把各条语句用分号隔开即可。
{CSS可以让界面更漂亮些。}
第五章 JavaScript 编程原则和良好习惯
“真”协议特指那些用来在因特网上的两台计算机之间传输各种数据包的标准化通信机制,如http://、ftp://等,伪协议则是人们对非标准化通信机制的统称。“javascript:”伪协议让我们可以通过一个链接来调用JavaScript函数。
在HTML文档里通过“JavaScript”伪协议、内嵌事件处理函数调用JavaScript代码的做法非常不好。因为没有预留退路。如果用户已经禁用了浏览器的JavaScript功能,那么将不能触发函数调用。
CSS技术的最大优点是,它把Web文档的内容结构(HTML文档本身)和版面设计分成了互不影响的两大部分。
类似于CSS,JavaScript和DOM提供的所有功能也应该构成一个额外的、不影响文档结构和内容的指令层。CSS代码负责提供关于“表示”的信息,JavaScript代码负责提供关于“行为”的信息。
在这一章里,我们向大家介绍了一些与DOM脚本编程工作有关的基本原则和良好习惯,它们是:
1、预留退路;
2、分离JavaScript;
3、向后兼容性。
本章的另一个主题是:在学习和使用Flash和CSS等其他一些技术时获得的经验可以帮助我们学好和用好JavaScript。只有勤于思考、善于借鉴,才能编写出高品质的脚本。
第六章 案例研究:JavaScript美术馆改进版
1、把事件处理函数移出HTML文档;
2、如何改善向后兼容性;
3、确保可访问性。
作为一条原则,如果你想用JavaScript给某个网页添加一些行为,就不应该让你的JavaScript代码对这个网页的结构有任何依赖。
如果你已经把所有的函数和事件处理函数都放在了外部文件里,就可以在不影响HTML文档的情况下对其进行修改。你可以随时打开脚本并对它们进行优化,而你做出的修改将自动作用于每个引用了这个JavaScript文件的网页。
DOM Core 和 HTML-DOM。使用HTML-DOM可以让代码更加简洁。
下一章学习动态创建HTML元素。
第七章 动态创建HTML内容
1、用来动态创建HTML内容的“老”技巧:document.write()方法和innerHTML属性
2、深入剖析DOM方法:createElement()、createTextNode()、appendChild()和insertBefore()。
innerHTML属性无细节可言。要想获得细节,就必须使用DOM方法和属性。标准化的DOM就像是一把手术刀,innerHTML属性就像是一把劈柴斧。
innerHTML属性要比document.write()方法更值得推荐。使用了innerHTML属性,你就可以把JavaScript代码从HTML文档中分离出来。用不着再在HTML文档的<body>部分插入<script>标签。
如果用文本编辑器而不是浏览器去打开又关文档,我们将看不到任何属性发送变化。我们只有在用浏览器打开那份文档时才能看到文档呈现效果方面的变化。这是因为浏览器实际显示的是那棵DOM节点树。在浏览器看来,DOM节点树才是文档。
CreateTextNode createElement appendChild
可以看到,把新节点插入某个文档的节点树的办法并非只有一种。即使你们决定永远也不使用document.write()方法或innerHTML属性,在使用DOM方法去创建和插入新节点时你们也可以灵活地做出多种选择。
第八章 充实文档的内容
如果它真的是必不可少,我们从一开始就应该把它包括在HTML文档里。
JavaScript脚本只应该用来充实文档的内容,要避免使用DOM技术来直接插入核心内容。
{ 有序表格、无序表格、定义表格。}
即使某种特定的浏览器会引起问题,也没有必要使用浏览器嗅探代码。对浏览器的名称和版本号进行嗅探的办法很难做到面面俱到,而且往往会导致非常复杂难解的代码。
{accesskey,快捷键。}
基本思路:用JavaScript函数先把文档结构里的一些现有信息提取出来,再把那些信息以一种清晰和有意义的方式重新插入到文档里去。
下一章:
DOM技术不仅可以用来改变网页的结构,还可以用来对HTML页面元素的CSS信息进行刷新。
第九章 CSS-DOM
网页由三层信息组成的一个共同体:
1、html结构层;2、css表示层;3、JavaScript行为层。
{ Camel记号。}
如果使用了CSS文件设置样式,那么来自外部文件的样式信息就不能再用DOM style属性检索出来了。在<head>里声明的样式信息也是如此。{又有人说其实是可以的,估计不是什么规范的做法}
如果我们用DOM来设置样式信息,就可以用DOM再把它们检索出来。
在绝大多数场合,还是应该使用CSS去声明样式信息。就像你不应该利用DOM技术去创建重要的HTML内容那要,你也不应该利用DOM技术去为文档设置重要的样式信息。
{node.nodeType,节点的类型:1是元素节点;2是属性节点;3是文本节点。}
style属性很有用,但它的最大不足是我们无法通过这一属性提取到通过外部CSS设置的样式信息。但我们仍可以利用style属性去改变HTML元素的样式。在挑选解决方案时,应该优先选择刷新className属性值,而不是直接去改动style对象的有关属性。
JavaScript脚本可以周期性地重复执行一组操作;通过周期性地改变样式信息,我们就可以实现出在只使用CSS的情况下根本不可能实现的效果。譬如:动画效果。
第十章 用JavaScript实现动画效果
1、何为动画;
2、用动画丰富网页的浏览效果;
3、让动画效果更流畅。
{ setTimeout 延时动作。}
从技术上讲,实现动画效果并不困难,问题是在实践中应不应该使用动画。动画技术可以让我们创建出很多种非常酷的效果,但那些四处移动的元素对用户有用或有帮助的场合却并不多。
到目前为止,我们已经在这本书里学习了DOM脚本去充实网页的思路和技巧,接下来要运用到实践中了。
第十一章 学以致用:JavaScript网站设计实践
编排内容;设计网站;施用样式;用JavaScript和DOM完善网站。
存一个html页面的模板,往里头填代码。
当前页面的url:window.location.href.
字符串拆分:string.split(character)
{我忽然想到为什么JS代码里不让左大括号另起一行了,因为等号右边的匿名函数,大括号另起一行不太好看}
{onfocus onblur 为什么不用lowerCamelCase?}
给编辑框设置默认值,当编辑框获取焦点时清空默认值,当编辑框失去焦点且未被编辑过时显示默认值。
{例子代码所在:http://domscripting.com/domsters/contact.html}
要想编写出高质量的DOM脚本,知道多少DOM方法和属性并不是最重要的因素。编写出来的脚本是否健壮、是否有足够的预留退路才是最重要的,而最重要的原则是必须把网页的结构层、表示层、行为层分离开来。
第十二章 展望DOM脚本编程技术
{这本书中文版是2006年出来的,展望部分的内容有些旧了,连webkit都没说到。}
{Ajax 例子:http://elsewhere.adactio.com/}
随着越来越多的应用被搬到了网上,操作系统所扮演的角色也变得越来越不重要。或许就在不久的将来,我们完成日常工作所需要的全部东西将会是一条因特网连接和一个符合有关标准的Web浏览器,而我们的家用电脑将变成连接各种智能化服务器的终端。
随着Ajax等技术的出现,桌面软件和Web应用之间的界线正变得越来越模糊。
未来就在你们的手里。这是一个激动人心的时代,能在这个时代成为一名Web设计师更是一件激动人心的事。
读后感:
这本书很简单,适合完全不懂的人入门,但需要先懂点HTML、CSS。
只看内容可以很快看完,毫无难点,比较费时间的是动手把文中的例子代码打一遍,抄错了代码。
看的是电子书,比较费劲,也不太用心,2月5号开始看,断断续续,2月17号看完,中间因为春节浪费了不少时间。
现在已经有第二版了,估计新版本会比较好。
对JavaScript的学习真是恨晚,之前一直只写windows下的C++、Win32汇编,眼界很窄,这个世界,互联网才是主流,而桌面软件会越来越少,逐渐凋零。
[第一版]初学者的摘录和感觉
对“[第一版]初学者的摘录和感觉”的回应
《JavaScript DOM编程艺术》热门书评
-
通往终点的过程与终点本身同样重要
116有用 7无用 cxa 2006-12-30
半年前,当我对JavaScript还停留在只认识这几个字母的时候,有一天我突然心血来潮,在网上下了DOM Scripting的样章,照着里面的例子写了我平生第一个能让我知所以然JavaScript,在浏览器运行成功,兴奋不已,从此能把学习编程的热情持续半年以上,破了过去只能热一两个星期的记录,它带给...
-
菜鸟读书笔记
28有用 1无用 |53/V> 2007-10-23
DOM模型——在dom模型中,文档是一棵树,文档元素、文本和属性都是节点——所有的属性节点都属于元素节点,文本节点是没有属性的——css样式本身不是节点,不过也采用了文档树的模型——dom的工作方式是先加载静态页面,再动态刷新,并不改变网页源码——在浏览器看来,dom节点树才是文档。我们不是在创建h...
-
我看《JavaScript DOM 编程艺术》
22有用 1无用 琳琳的小狗 2007-01-11
这本书在刚出版的时候,编辑就送了一本给我,可惜那段时间出差在外没能看到,真正到手是4号那天,之前一直关注china-pub上的评论,有网友评价说内容太肤浅,“大失所望,感觉象是喝了碗稀粥,一点实在货都没有”。的确,此书是我有史以来读得最快的一本,三百页,从4号晚上开始看,到第二天下午就看完了,说明写...
-
[第一版]初学者的摘录和感觉
6有用 0无用 银光 2013-02-17
这不是书评,是读第一遍的摘录。[读的是第一版的中文电子书]前言 这是一本讲述一种程序设计语言的书,但它也适合Web设计师阅读。具体地说,本书是为那些喜欢使用CSS和XHTML并愿意遵守编程规范的Web设计师们编写的。 第一章 JavaSc...
-
书名翻译成“编程艺术”有些过了
4有用 0无用 [已注销] 2011-07-01
原书标题并没有以The Art of...开头,翻译成JavaScript DOM编程艺术有些过了,它的定位显然应该是一本入门书籍,而不是TAOCP那样的“圣经”。这本书教会你如何用javascript操纵DOM树,使页面动态化。讲的东西比较杂,HTML5,CSS,AJAX以及各种历史,相比之下ja...
书名: JavaScript DOM编程艺术
作者: [英] Jeremy Keith
出版社: 人民邮电出版社
译者: 王建桥 | 杨涛 | 杨晓云
出版年: 2006年12月
页数: 316
定价: 39.00元
装帧: 简裝本
丛书: 图灵程序设计丛书·Web开发系列
ISBN: 9787115139214