JavaScript DOM高级程序设计

当前位置:首页 > 网络编程 > 编程语言与程序设计 > JavaScript DOM高级程序设计

出版社:人民邮电出版社
出版日期:2008-7
ISBN:9787115181091
作者:Jeffrey Sambells,Aaron Gustafson
页数:457页

章节摘录

  第一章 遵循最佳实践  你很兴奋,你的客户也很兴奋。你刚刚为客户安装启用了新版的网站,一切都很顺利。网站很花哨,它历经了数小时汗水和泪水的浇灌,每一处设计细节——扩展式菜单、交互的Aiax都精心调试过,所有新式花样无所不包。它看上去很不错,运行得也很完美,所有人都沉浸在喜悦中。然而,一周之后,噩梦开始了。客户慌里慌张地打来电话,好像是据他们的部分顾客来电话反应说主页上的链接打不开了,而另外一些顾客在填写反馈表单时也碰到了问题。但在你和你的客户那里却不存在这些的问题。还有一些人也打来电话,抱怨下载网站的每一个页面都要等很长时间,即使看上去网页内容并不很多,而你从来没有发现下载时间有问题。更糟糕的是,随后,你客户发现网站在搜索引擎中的排名一落千丈。看来事情没有想象的那么乐观,但问题出在哪里  呢?下面我们就一起来查找原因。  最佳实践是人们做事时应该遵循的、被公认和经过验证的模式。虽然不一定是唯一的,甚至不是最佳的方式,但这些方式是大多数人认同的做事方式。一般的书在最后部分会提到一些最佳实践,这更多地是一种提示,即在你已学会了每件事并按自己的方式行事时,告诉你还会有一种最适当的方式。我之所以把最佳实践放在前面来讲,就是为了让你在开始学习新知识之前,先明确正确的方向。如果有阳关大道,那又何必去走独木桥呢?  1.1 不唐突和渐进增强  XHTML(ExteIlsibleHyperext Markup Laneuaee,可扩展超文本标记语言)、CSS(Cascading StyleSheet,层叠样式表)和使用JaVaScript的DOM(DocumentObjectModel,文档对象模型)脚本是Web设计的三个主要部分。其中,XHTML用于提供文档结构的语义标记,CSS为文档布局提供定位和样式,而DOM脚本编程用于增强文档的行为和交互性。发现了吗?我刚才说DOM脚本“增强”,而不是为文档“提供”行为和交互性。“增强”和“提供”之间的差异暗示了一个重要区别。我们都学过XHTML语义,知道验证文档是否符合w3c规范,而且也都在用CSS来为严格型XHTML文档标记应用适当的样式(对吧?)。但是,作为第三个主要部分的DOM脚本,虽然它可以把事情做得格外漂亮,为我们的wleb应用程序增光添彩,却有可能是一个唐突的家伙。DOM脚本编程依赖于JavaScript。

内容概要

  Jeffrey Sambells,资深Web设计师和程序员,We-Create公司创始人之一暨研发总监。除本书外,他还与人合写了Beginning Google Maps Applications with PHP and Ajax等著作。  Aaron Gustafson,世界顶尖的Web工程师,创建了Web咨询公司Easy!Designs LLC.。Aaron是WaSP(Web标准项目)和GAWDS(可访问性Web设计协会)的成员。他还是A List Apart网站的技术编辑,Digital Web Magazine和MSDN等著名杂志的撰稿人。

书籍目录

第一部分 深入理解DOM脚本编程第1章 遵循最佳实践1.1 不唐突和渐进增强1.2 让JavaScript运行起来1.2.1 把行为从结构中分离出来1.2.2 不要版本检测1.2.3 通过平稳退化保证可访问性1.2.4 为重用命名空间而进行规划1.2.5 通过可重用的对象把事情简化1.2.6 一定要自己动手写代码1.3 JavaScript语法中常见的陷阱1.3.1 区分大小写1.3.2 单引号与双引号1.3.3 换行1.3.4 可选的分号和花括号1.3.5 重载(并非真正的重载)1.3.6 匿名函数1.3.7 作用域解析和闭包1.3.8 迭代对象1.3.9 函数的调用和引用(不带括号)1.4 实例:WYSIWYGJavaScript翻转图1.5 小结第2章 创建可重用的对象2.1 对象中包含什么2.1.1 继承2.1.2 理解对象成员2.1.3 window对象中的一切2.1.4 理解作用域和闭包是根本2.2 创建你自己的对象2.2.1 一变多:创建构造函数2.2.2 添加静态方法2.2.3 向原型中添加公有方法2.2.4 公有、私有、特权和静态成员真那么重要吗2.2.5 对象字面量2.3 this是什么2.4 try{}、catch{}和异常处理2.5 实例:你自己的调试日志2.5.1 为什么需要JavaScript日志对象2.5.2 myLogger()对象2.6 小结第3章 DOM2核心和DOM2 HTML3.1 DOM不是JavaScript,它是文档3.2 DOM的级别3.2.1 DOM 0 级3.2.2 DOM 1 级3.2.3 DOM 2 级3.2.4 DOM 3 级3.2.5 哪个级别适合你3.3 创建示例文档3.3.1 创建DOM文件3.3.2 选择一个浏览器3.4 DOM核心3.4.1 继承在DOM中的重要性3.4.2 核心Node对象3.4.3 核心Element对象3.4.4 核心Document对象3.4.5 遍历和迭代DOM树3.5 DOM HTML3.5.1 DOM2 HTML 的HTMLDocument对象3.5.2 DOM2 HTML 的HTMLElement对象3.6 实例:将手工HTML代码转换为DOM代码3.6.1 DOM生成工具的HTML文件3.6.2 使用示例HTML片段进行测试3.6.3 扩充ADS库3.6.4 generateDOM对象的框架3.7 小结第4章 响应用户操作和事件4.1 DOM2级事件4.2 事件的类型4.2.1 对象事件4.2.2 鼠标移动事件4.2.3 鼠标单击事件4.2.4 键盘事件4.2.5 表单相关的事件4.2.6 针对W3C DOM的事件4.2.7 自定义事件4.3 控制事件流和注册事件侦听器4.3.1 事件流4.3.2 注册事件4.3.3 在事件侦听器中访问事件对象4.3.4 跨浏览器的事件属性和方法4.4 小结第5章 动态修改样式和层叠样式表5.1 W3CDOM2样式规范5.1.1 CSSStyleSheet对象5.1.2 CSSStyleRule对象5.1.3 CSSStyleDeclaration对象5.1.4 支持的匮乏5.2 当DOM 脚本遇到样式5.3 把样式置于DOM脚本之外5.3.1 style属性5.3.2 基于className切换样式5.3.3 切换样式表5.3.4 修改CSS规则5.4 访问计算样式5.5 Microsoft的filter属性5.6 实例:简单的渐变效果5.7 小结第6章 案例研究:图像裁剪和缩放工具6.1 测试文件6.2 imageEditor对象6.2.1 调用imageEditor工具6.2.2 imageEditor载入事件6.2.3 创建编辑器标记和对象6.2.4 向imageEditor对象添加事件侦听器6.2.5 缩放图像6.2.6 裁剪图像6.2.7 未完成的图像编辑器6.3 小结第二部分 浏览器外部通信第7章 向应用程序中加入Ajax7.1 组合的技术7.1.1 语义化XHTML和DOM7.1.2 JavaScript和XMLHttpRequest对象7.1.3 XML7.1.4 一个可重用的对象7.1.5 Ajax是正确的选择吗7.2 为什么Ajax会破坏网站及如何解决7.2.1 依赖JavaScript生成内容7.2.2 通过script标签绕过跨站点限制7.2.3 后退按钮和书签功能7.2.4 完成请求的赛跑7.2.5 增加资源占用7.2.6 问题解决了吗7.3 实例:Ajax增强的相册7.4 小结第8章 案例研究:实现带进度条的异步文件上传功能8.1 信息载入时的小生命8.2 起点8.3 完成整合:上传进度指示器8.3.1 addProgressBar()对象的结构8.3.2 载入事件8.3.3 addProgressBar()对象8.4 小结第三部分 部分高级脚本编程资源第9章 通过库来提高生产力9.1 选择合适的库9.2 增强DOM操作能力9.2.1 连缀语法9.2.2 通过回调函数进行过滤9.2.3 操纵DOM文档9.3 处理事件9.3.1 注册事件9.3.2 自定义事件9.4 访问和操纵样式9.5 通信9.6 小结第10章 添加效果增强用户体验10.1 自己动手实现效果10.1.1 让我看到内容10.1.2 提供反馈10.2 几个视觉效果库简介10.3 视觉盛宴10.3.1 MOO式的CSS属性修改10.3.2 通过Script.aculo.us实现视觉效果10.3.3 通过Moo.fx实现逼真的运动效果10.3.4 圆角效果10.3.5 其他库10.4 行为增强10.5 小结第11章 丰富的Mashup!运用API添加地图、搜索及更多功能11.1 API密钥11.2 客户端API:离不开JavaScript11.2.1 地图中的Mashup应用11.2.2 Ajax搜索请求11.2.3 地图与搜索的Mashup应用11.3 服务器端API:需要代理脚本11.3.1 通过Basecamp构建集成的To-Do列表11.3.2 通过Flickr取得个性头像11.4 小结第12章 案例研究:用DOM设计选择列表12.1 经典的感觉12.2 构建更好的选择列表12.3 策略?我们不需要臭哄哄的策略12.3.1 相关的文件12.3.2 FauxSelect对象12.3.3 开始创建人造select元素12.3.4 查找select元素12.3.5 构建DOM元素12.4 添加事件——为人造select赋予生命12.5 让表单绽放光彩12.6 行为修正12.6.1 z-index来救急12.6.2 键盘控制及其他细节12.6.3 select太大了吗12.7 最后的细节12.8 继续替换select的冒险12.9 小结

编辑推荐

  “本书是一本全景式的、沟通历史和未来的Web开发经典好书。是对现有JavaScript DoM程序开发最佳实践的一次大检阅和大放送,是推动Web标准化和向下一代Web开发挺进的里程碑式著作。”  ——本书译者  “如果你是一位中级JavaScript人员,还想更上一层楼,那么这将是使你梦想成真的绝妙好书。”  ——DOMAssistant库的作者Robert Nyman  本书深入浅出地讲述了作为一名专业的Web开发人员(或者真正的高手)所必须了解和掌握的高级知识,是Web编程领域名副其实的扛鼎之作。书中对核心JavaScript原理的总结和概括、对最佳实践的倡导和践行、对DOM规范讲解的提纲挈领、对浏览器外部通信(Ajax)的反思与解决之道、对Web 2.o rXJ容整合(Mashup)的分类与讲说等,无一不折射出这本书是作者博观约取、厚积薄发的心血力作。  与此同时,如果你也醉心于Prototype、jQuery、YUI、Ext等优秀的JavaScript库,想见微知著地真正理解这些库背后的工作原理,甚至希望创建自己的库,那么这本书恰好适合你。

作者简介

本书注重理论与实践的结合,全面讲述高级的DOM 脚本编程。全书分为3 个部分:第一部分“深入理解DOM 脚本编程”,涉及W3C DOM 规范的各方面,包括非标准的浏览器支持和不支持的内容;第二部分“浏览器外部通信”,以Ajax 和客户端—服务器端通信为主题;第三部分“部分高级脚本编程资源”,集中介绍了一批第三方脚本编程资源,包括库和API。同时,每部分的最后一章都为案例研究,将学到的内容应用于实践。通过学习全书内容,读者将能构建起属于自己的DOM 实用方法库。
本书适合有Web 开发和设计经验的读者阅读和参考。

图书封面


 JavaScript DOM高级程序设计下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计5条)

  •     这本书很值得一看。195页的editCSSRules函数貌似有点问题:for (var j = 0; j < rules.length; j++)if (rules[j].selectorText.toUpperCase() == selector)for (porperty in styles)if ( !styles.hasOwnProperty(property) ) continue;rules[j].style[camelize(property)] = styles[property];//if ( !styles.hasOwnProperty(property) ) continue;这个if通过检测styles是否具有property,貌似总是成立的,应该是检测styles的property属性是否具有值,即: if (!styles[property]) continue; 如果没有赋值的话继续循环,有的话,就把property属性的格式改写成驼峰式(比如font-size改写成fontSize),并赋予原本的值。
  •     比不上那本尼古拉斯写的高级程序设计,可能要归咎于本身比较薄吧,看了各位的评分,似乎也没有那本书那么受好评。
  •     很好的书,不依赖与某个库,而是教你自己实现一个自己的库。确实,如果太过于依赖于某个库,完全不理解库的内部原理,会让让自己迷失在表层构建一个自己的库,可以让自己对dom,对js,对跨浏览器又更深入的理解

精彩短评 (总计53条)

  •     不错,很煽情,准备买本看看
  •     好书,精通javascript必读
  •     很详细。但示例一章章递进,前边没写后边没法跟着写。。所以只是粗读了一下
  •       
      很好的书,不依赖与某个库,而是教你自己实现一个自己的库。
      确实,如果太过于依赖于某个库,完全不理解库的内部原理,会让让自己迷失在表层
      构建一个自己的库,可以让自己对dom,对js,对跨浏览器又更深入的理解
  •     好东西~ 话说不是很多,不过对了解DOM足以~ 希望读完这本书的孩子去看下jquery方面 和prototype mootool啥的
  •       市面上已经停售了,只能团购,有谁组织一下,想买,hxzon@163.com,AdvancED DOM Scripting,JavaScript.DOM高级程序设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  •     哪里有得团?我也要啊。。。
  •     绝对的经典,自己动手创建自己的JS库。五颗星!!!
  •     JS系Q3
  •     是中文的吗?
  •     写得这么煽情,搞得你自己有托的嫌疑了,我也去看看
  •       看了前两章,已经感觉到豁然开朗,本书不是给你讲如何实现简单的AJAX效果,而是告诉你如何写个自己的开源库,如何像个功夫高手一样写代码。感觉到大师思想和功力的深厚。
      
      水滴石穿,本书正是你通往达人之路的最佳选择,我毫不犹豫的给5星推荐给javascript之路上修炼的同志。
  •     看了后很多东西都有豁然开朗的感觉,以前不理解的,现在理解了
  •     pdf
  •     初学还是看《javascript高级编程第三版》
  •     好书一枚,针对DOM的一些操作讲的很好也比较详细...
  •     非常好的javascript书籍,看完基本能够自己建立库了,适合有一定基础
  •     学习设计模式,创建自己的js库
  •     现在已基本不写前端JS代码,但还是很开阔视野。
  •     非常好,搭建自己的工具函数库。
  •     真的有用 ??
    不要骗人啊
    初学者适合不?
    有HTML ,JAVA, C#基础
  •     不能用薄厚来进行比较,废话很多也可以写的很厚,但你会看的很痛苦。
    我觉得这本与javascript高级程序设计没什么可比性。
  •       本书可以分为三个部分
      1 深入讲解DOM编程世界
      很少有书能像本书这样有条理的解释DOM,它简直就是W3C标准文档的简明指导,通读本部分内容,读者会把DOM世界的模型印在脑子里,所谓学知识要先把握总纲,然后探究细节。
      2 与服务器端通信和AJAX
      本书对于Ajax技术的讲解也值得一读,它并不着眼于Ajax技术的具体细节,而是注重讲解Ajax的使用方式,尤其是怎样避免Ajax带来的缺陷,我们知道并不能因为会用一门技术就该使用它。
      3 简单介绍几种时下流行的js库
      本部分可以可以作为IT杂志,简单了解一些js库的特点。
      
      总结,本书可作为进阶教材,要求读者懂得基本的js语法,尤其推荐给在职人员
  •     在哪团购啊
  •     看到一半书弄丢了。
  •     很不错的一本书
  •       完全不认为这是高级,如果想了解dom还是看dom的文档吧,看权威指南后面的文档比这好多了,想深入一点就看一下类库源码吧,这本不是给想看高级的人看的。
  •     在哪?
  •     和javascript 高级程序设计配合着看效果更好
  •     这本好读一点。
  •     读了一半,需复读
  •     想团
  •     请说下实话,适合初学者?
  •     构建属于自己的代码库,这个是本书作者提倡的核心价值所在,这也是一种开源的思想。作者一步一步教你何如构建自己的代码库,并且通过几个案例加深所学的知识,虽然说这些代码对我自己来说有点深度,但让我感到眼界开阔,收获良多。
  •     只看到电子版,各个电商都木有卖的。js DOM操作
  •     前面第一部分真的不错!
  •     好书
  •     第七章开始的内容有些落伍了。可以速读一下就好了,了解一下如何自己来写一个组件。
  •     楼主 哪儿有?
  •     JS 这门语言基本被玩坏了
  •     哈哈 js的经典了 技术会老 但是解决问题的方法与本质不老
  •     嗯,哪有得团~
  •     入门书
  •       这本书很值得一看。195页的editCSSRules函数貌似有点问题:
      for (var j = 0; j < rules.length; j++)
      if (rules[j].selectorText.toUpperCase() == selector)
      for (porperty in styles)
       if ( !styles.hasOwnProperty(property) ) continue;
       rules[j].style[camelize(property)] = styles[property];
      
      //if ( !styles.hasOwnProperty(property) ) continue;这个if通过检测styles是否具有property,貌似总是成立的,应该是检测styles的property属性是否具有值,即: if (!styles[property]) continue; 如果没有赋值的话继续循环,有的话,就把property属性的格式改写成驼峰式(比如font-size改写成fontSize),并赋予原本的值。
      
      
      
      
      
  •       比不上那本尼古拉斯写的高级程序设计,可能要归咎于本身比较薄吧,看了各位的评分,似乎也没有那本书那么受好评。
  •     要实践啊!!!
  •     加QQ,2437899511 团购。加的时候请注明
  •     以前一直想深入去剖析库的源码,却一直没行动,本书教你一步步(新手勿喷)写一个库,不适合新手,DOM很全面,还有服务器端的讲解,好坏参半吧
  •     如果忽略掉一些笔误,这本书真的非常赞!《js高级程序设计》是理论版,这个就是实战版
  •     是JS dom 编程艺术的进阶版。。。我学习顺序ms反了==
  •     高级程序设计与这本完全没有可比性,一本注重理论,一本注重应用。刚刚读完高级程序设计第二版,和犀牛书对比来说,作为一个前端开发者应该最少有一本用来当手册用。
    我认为这本书很有必要买本
  •     主内容为讲解如何构建一个js工具库的设计思路。译者李松峰老师,html5年会上见过合影过,人很好!翻译的很认真很赞
  •     确实经典。。。看完后绝对对Javascript认识又深入一层。。。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024