书评:《Ajax实战》

cleverpig 发表于 2006-04-25 14:47:08 作者:cleverpig     来源:matrix
评论数:14     点击数:1,577

摘要:

《ajax实战》是目前Ajax领域最为全面深入的一本著作,其中不仅有对于基础知识的介绍,还有对于Ajax开发中重大的体系架构问题的深入探讨,总结了大量 Ajax开发中的设计模式,并讨论了框架、安全性与性能等等。cleverpig在第一手拿到了《ajax实战》试读版本,在阅读部分章节后为翻译者的无私努力感到敬畏和佩服,特作此书评提交给Matrix的Ajax技术拥护者...
书评:Ajax实战

作者:cleverpig


作译者介绍
作者:Dave Crane Eric Pascarello
译者:李锟(网名dlee)及ajaxcn.org的成员们。

Dave Crane:英国资深Web开发人员,在智能家居、银行和金融系统领域应用DHTML和Ajax等客户端技术拥有丰富的经验。

Eric Pascarello 资深ASP.NET开发人员,著名Java社区JavaRanch的 HTML与JavaScript版主。

Darren James 是开源Ajax框架的架构师。

李锟(网名dlee):独立软件咨询顾问,有多年软件开发和软件项目管理的经验,在J2EE、Ajax、敏捷软件开发方法等领域有独到的见解。

内容提要
本书是目前Ajax领域最为全面深入的一本著作,其中不仅有对于基础知识的介绍,还有对于Ajax开发中重大的体系架构问题的深入探讨,总结了大量 Ajax开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码稍作修改就可以直接应用于项目开发之中,代码源文件可以从图灵网站下载。
本书内容广泛且深入,同时适用于各个层次的Web应用开发人员。

前言
有时候,在你发觉之前,命运之神已经降临多时了。20世纪90年代初期,在我使用的各种有趣的新技术之中,一种称为JavaScript的小脚本语言刚刚崭露头角。我很快意识到,尽管名字叫JavaScript,它其实与我心爱的Java没有任何关系,但是从此它却与我结下了不解之缘。

90年代后期,我开始为数字机顶盒技术的早期采用者开发软件。其中主要软件部分的用户界面完全使用JavaScript编写,我成为一个开发小组的技术负责人,负责使用这种语言编写窗口管理代码、调度程序和各种巧妙代码。“多么神奇啊!”我想,“它总是让人意想不到。”

此后,我转向了要求更高的工作——为会说话的未来智能家居开发企业消息中枢(backbone)和各种用户界面组件。我是靠Java方面的技能被录用的,但是很快我又在编写奇妙的JavaScript用户界面了。令人惊奇地是,我发现一些人居然郑重其事地在用这种脚本语言来编写框架。很快,我使用了 Mike Foster开发的早期版本的x库(你将在本书偶尔看到它的身影)。一天下午,在开发一个邮件和文本信息论坛时,我有了一个不可思议、令人兴奋的想法:在隐藏帧(hidden frame)中检查新的消息,无需刷新屏幕就可以将消息添加到用户界面中。经过几个小时的狂热编码,我成功了,甚至解决了如何用颜色来呈现新的消息,使得它们容易被用户注意到。“多有趣啊!”我想,随后就又回去编写那些正经代码了。我还不知道,在同一时间,Eric Costello、Erik Hatcher、Brent Ashley和其他人正在考虑相同的事情,而微软也正在为其Outlook Web Access设计XMLHttpRequest。

命运之神还在紧随着我的脚步。我的下一个工作可以说是责任重大——为顶级的大型银行开发软件。我们混合使用了Java和JavaScript,并且使用了隐藏帧和其他的技巧。我的团队现在维护着超过1.5M字节的代码——除了使用由JSP生成的代码外,全部是静态的JavaScript。其中还没有算上图片资源。我们用它来开发上百个操作员使用的一个应用,这个应用管理着价值数以百万美元的帐户。你的银行帐户有可能就是使用这个软件来管理的。

在此期间,我没有完全意识到,JavaScript已经长大成人了。在2005年2月,Jesse James Garrett提供了完整拼图中缺失的一块——他为我们过去几年偷偷摸摸地私自使用的“跨浏览器异步富客户端动态HTML客户服务器技术”(cross- browser-asynchronous-rich-client-dynamic-HTML-client-server technology)取了一个简洁而干脆的名字:Ajax。

正如他们所说的,以后的一切已经载入史册。Ajax现在正在引起广泛兴趣。Prototype、Rico、Dojo、qooxdoo、Sarissa和许多其他框架的开发者正在编写大量优秀的代码。框架已经多得不可胜数,但是我们还是决定尝试一下。在附录C中,我们列举了大多数值得关注的框架。生活如此美好,我从来没有像现在这样享受计算机工作。

我们远未大功告成,这个领域还在发展之中。当我在2005年9月对5月撰写的第一章进行最后修改时,我吃惊地看到这个领域取得的巨大进展。这个主题仍然有很多值得思考的地方,接下来两年将会令人无比兴奋。在写作本书的旅程中,我非常幸运地有Eric和Darren一路相伴。

我希望你也会与我们同行——而且感到不虚此行!

Dava Crane

译者序

普遍来说,中国人缺乏匠人的气质。“匠人”这个词在中国几乎是一个贬义词。例如说:“xx不过只是一个匠人”。但是其实国内的软件行业正是缺乏一大批对于自己的工作精益求精的软件工匠,这才是国内软件行业的主要问题所在。

相比之下,日本人是一个非常有匠人气质的民族。手艺精湛的匠人自古以来在日本都受到普遍的尊重。在这个方面,我们需要向日本人学习的地方有很多。

自从Pete McBreen所著的Software Craftsmanship(中文版名为《软件工艺》,人民邮电出版社出版)出版后,“软件工艺”为软件行业的从业者带来了“软件工程”之外的另一个重要的隐喻。在此之前,“软件工程” 这个隐喻在软件行业中一直占据着绝对的话语权。软件工艺并非是为了彻底颠覆软件工程,而是为了促使大家将目光更多地投向精研软件建造过程中的工艺问题。这本书将软件开发者分成了三个层次:学徒开发者(Apprentice Developer)、技师开发者(Journeymen Developer)和软件工匠(Craftsman)。

Ajax in Action的作者无疑已经达到了软件工匠的层次,本书充分体现出了他们的技术水平。我将本书评价为大匠的杰作。时间将可以证明,本书在Ajax技术著作的殿堂中,会像米开朗基罗的大卫那样成为不朽之作。这本书就像大卫那样充满了美感,其架构的复杂、计算的精确令人敬畏,堪称是工艺学和艺术的完美结合。

想要开山立派,必须高屋建瓴。达摩祖师、张三丰无不是这样的人物。本书作为Ajax技术领域的开山之作,同样也达到了这样的高度。虽然它是Ajax领域的第一本著作,但是它所达到的高度至今仍然是同类著作难以企及的。

某个技术领域的第一本著作往往并不是该领域中最好的著作,例如,大量的开发实践已经证明早年那些介绍J2EE开发的书价值是有限的,直到Rod Johnson写出了经典的J2EE without EJB,对于EJB的盲目推崇才宣告结束。到目前为止,与Ajax技术相关的著作在国外已经出版了10本以上,国内也在今年开始陆续出版大量相关的著作,包括翻译和原创。然而,我们非常惊讶地发现,本书目前仍然是这个领域最为全面和深入的一本书。其中不仅包含了耐心细致介绍的基础知识以及精心设计的实战例子,更重要的是,还涵盖了对Ajax开发中重大的体系架构问题的深入探讨,并且总结出了大量Ajax开发设计模式,因此,认为本书是一本讲体系架构和设计模式的书是毫不过分的。

Ajax领域的新框架和组件库层出不穷,一些功能非常简单,一些则是过度的设计或者存在着严重的设计问题。Ajax开发者对于应该选择什么样的框架感到茫然无助,毫无疑问,Ajax in Action可以帮助你。本书是目前已经出版的唯一一本深入探讨Ajax开发中的架构问题的著作,这使得它显得卓而不群。如果不去深入研究Ajax开发中的架构问题,Ajax开发领域将会再现J2EE开发领域早年的那种混乱局面,本书将会使得Ajax开发秩序井然。我们需要的不完全是技术本身,还需要思考和选择的眼光。Ajax in Action正是能够带给读者选择的眼光的著作。它使读者能够全方位地理解Ajax开发,不仅仅是看到众多的树木,更重要地是看到整片的森林。架构设计的合理性和灵活性将是选择Ajax框架的一个首要因素,将能决定任何Ajax框架未来的命运。一年之后,存在架构设计问题的很多框架都将会退出历史舞台。

尽管如此,作者并不是只讨论重大的架构问题,而忽略了具体的实现细节,这样往往会流于空泛。作者不仅仅是卓越的评论家,更是卓越的实干家。对于书中介绍的每一个架构和模式都给出了精心设计的例子。对于Ajax开发需要的所有基础知识,作者都通过例子做了耐心细致的讲解。书中花费了一半的篇幅阐述了大量 Ajax开发的实例,展示了Ajax开发的方方面面。每一个实例中的代码最后都被重构为一个可以重用的组件,这些组件的不需要做任何修改,或者只需要稍作修改就可以直接应用在读者的项目开发之中,帮助用户得到更好的交互体验。

在本书中,有令人高山仰止的体系架构和设计模式的分析,有潺潺流水式的深入细致的实例讲解。娓娓道来,带给读者100%一对一的阅读体验,虽然讨论的内容很多,但是达到了形散神不散的效果,这个神就是改善Web应用的可用性,可以说,本书中所有关注的问题都是与改善Web应用的可用性相关的。这正是 Ajax技术诞生的使命,也应该是任何一个Ajax开发者需要牢记的。Ajax开发并不是一个纯粹的技术问题,因为这里还涉及到另一个重要的利益相关人,就是最终用户。我们始终要把最终用户的感受放在首要位置,才能开发出出色的Ajax应用。

这本书因为其内容的广泛和深入,同时适合于Ajax开发的初学者和提高者,两种类型的开发者都能从中得到巨大的收获。对于Ajax开发者来说,本书可以作为案头常备的著作。作者就像是一位吹着笛子的魔法师,循序渐进、深入浅出地将读者领进了Ajax这个迷人的殿堂。本书堪称是一片富饶的宝藏,等待着你—— 勇敢的探险家去探索和发现。

李锟
2006年4月4日于上海

试读感受
cleverpig第一手拿到了《ajax实战》试读版本,在阅读部分章节后为翻译者的无私努力感到敬畏和佩服。由于该书原文作者都属于“第一线实战家”,并非像侯捷那样有泼墨如雪的文学功底,所以原文中多处使用俚语——cleverpig在阅读原文电子版时就感受颇多。

而观《ajax实战》后,感觉文章虽然不能到行云流水的地步,但也字句通畅、文切意达。从章节的划分开,前几章为ajax初学者的向导,但是其中渗透了“模式化设计”的思路颇深;中间部分为核心技术说明,后面几章为目前流行技术探讨。

篇幅详略得当,适合初学者和ajax技术一线开发者。

目录

第一部分 重新思考Web应用
 第1章 一种新的Web设计方法
  1.1 为什么需要Ajax富客户端?
   1.1.1 比较用户体验
   1.1.2 网络延迟
   1.1.3 异步交互
   1.1.4 独占或瞬态的使用模式
   1.1.5 忘掉Web
  1.2 Ajax的四个基本原则
   1.2.1 浏览器中的是应用而不是内容
   1.2.2 服务器交付的是数据而不是内容
   1.2.3 用户交互变得流畅而连续
   1.2.4 有纪律的严肃编程
  1.3 真实世界中的Ajax富客户端
   1.3.1 现状
   1.3.2 Google Maps
  1.4 Ajax的替代方案
   1.4.1 基于Macromedia Flash的方案
   1.4.2 Java Web Start及其相关技术
  1.5 小结
  1.6 资源
 第2章 Ajax新手上路
  2.1 Ajax的关键元素
  2.2 用JavaScript改善用户体验
  2.3 用CSS定义应用的外观
   2.3.1 CSS选择器
   2.3.2 CSS样式属性
   2.3.3简单的CSS例子
  2.4 用DOM组织视图
   2.4.1 使用JavaScript操作DOM
   2.4.2 寻找DOM节点
   2.4.3 创建DOM节点
   2.4.4 为文档增加样式
   2.4.5 捷径:使用innerHTML属性
  2.5 使用XML技术异步加载数据
   2.5.1 IFrame
   2.5.2 XMLDocument和XMLHttpRequest对象
   2.5.3 向服务器发送请求
   2.5.4 使用回调函数监视请求
   2.5.5 完整的生命周期
  2.6 Ajax有何不同
  2.7 小结
  2.8 资源
 第3章 使Ajax秩序井然
  3.1 从混沌到秩序
   3.1.1 模式:创造一个通用的词汇
   3.1.2 重构与Ajax
   3.1.3 保持均衡
   3.1.4 重构实战
  3.2 一些小型重构的案例研究
   3.2.1 跨浏览器不一致性:Facade和Adapter模式
   3.2.2 管理事件处理函数:Observer模式
   3.2.3 重用用户操作处理函数:Command模式
   3.2.4 保持对资源的唯一引用:Singleton模式
  3.3 模型-视图-控制器
  3.4 Web服务器端的MVC
   3.4.1 不使用模式的Ajax Web服务器
   3.4.2 重构领域模型
   3.4.3 从表现中分离内容
  3.5 第三方的库和框架
   3.5.1 跨浏览器库
   3.5.2 UI组件和UI组件套件
   3.5.3 应用框架
  3.6 小结
  3.7 资源
第二部分 核心技术
 第4章 作为应用的页面
  4.1一种不同类型的MVC
   4.1.1 以不同的规模重复MVC模式
   4.1.2 在浏览器端应用MVC
  4.2 Ajax 应用中的视图
   4.2.1 将逻辑从视图中分离
   4.2.2 保持视图与逻辑的分离
  4.3 Ajax 应用中的控制器
   4.3.1 传统的JavaScript事件处理函数
   4.3.2 W3C 事件模型
   4.3.3 在JavaScript中实现灵活的事件模型
  4.4 Ajax 应用中的模型
   4.4.1 使用JavaScript为业务领域建模
   4.4.2 与服务器交互
  4.5 从模型生成视图
   4.5.1 JavaScript对象的反射
   4.5.2 处理数组和对象
   4.5.3 添加控制器
  4.6 小结
  4.7 资源
 第5章 服务器的角色
  5.1 与服务器配合工作
  5.2 编写服务器端代码
   5.2.1 流行的实现语言
   5.2.2 N层体系架构
   5.2.3 维护客户端和服务器端的领域模型
  5.3 大局观:通用的服务器端设计
   5.3.1 不使用框架进行简单的Web服务器编码
   5.3.2 使用Model2工作流框架
   5.3.3 使用基于组件的框架
   5.3.4 使用面向服务的体系架构
  5.4 细节:交换数据
   5.4.1 仅限于客户端的交互
   5.4.2 介绍行星浏览器的例子
   5.4.3 从Web页面的角度思考:以内容为中心的交互
   5.4.4 从插件的角度思考:以脚本为中心的交互
   5.4.5 从应用的角度思考:以数据为中心的交互
  5.5 向服务器写数据
   5.5.1 使用HTML表单
   5.5.2 使用XMLHttpRequest对象
   5.5.3 有效地管理用户的更新
  5.6 小结
  5.7 资源
第三部分 专业级的Ajax
 第六章 用户体验
  6.1 做正确的事:开发高质量的应用
   6.1.1 响应性
   6.1.2 健壮性
   6.1.3 一致性
   6.1.4 简单性
   6.1.5 付诸实践
  6.2 让用户知情
   6.2.1 处理自己请求的响应
   6.2.2 处理其他用户提交的更新
  6.3 为Ajax设计通知系统
   6.3.1 对通知建模
   6.3.2 定义用户界面需求
  6.4 实现通知框架
   6.4.1 显示状态栏图标
   6.4.2显示详细的通知信息
   6.4.3 集成
  6.5使用通知框架处理网络请求
  6.6 表示数据的时效性
   6.6.1定义简单的突出显示格式
   6.6.2 用Scriptaculous效果库进行突出显示
  6.7 小结
  6.8 资源
 第7章 安全性与Ajax
  7.1 JavaScript与浏览器安全性
   7.1.1 引入来源服务器策略
   7.1.2 Ajax的相关考虑
   7.1.3 子域问题
   7.1.4 跨浏览器安全性
  7.2 使用远程服务进行通信
   7.2.1 代理远程服务
   7.2.2 使用Web服务
  7.3 保护机密数据
   7.3.1 中间人
   7.3.2 使用安全HTTP
   7.3.3 在普通HTTP上使用JavaScript加密数据
  7.4 Ajax数据流的访问策略
   7.4.1 设计安全的Web层
   7.4.2 限制对Web数据的访问
  7.5 小结
  7.6 资源
 第8章 性能
  8.1 什么是性能?
  8.2 JavaScript执行速度
   8.2.1 测定应用时间的艰难方式
   8.2.2 使用Venkman性能分析器
   8.2.3 优化Ajax应用的执行速度
  8.3 JavaScript内存使用量
   8.3.1 避免内存泄漏
   8.3.2 Ajax的特殊考虑因素
  8.4 考虑性能的设计
   8.4.1 测量内存使用量
   8.4.2简单示例
   8.4.3 结果:如何将内存使用量缩减150倍
  8.5 小结
  8.6 资源
第四部分 Ajax实例研究
 第9章 动态双组合功能
  9.1 双组合脚本
   9.1.1 客户端解决方案的局限性
   9.1.2 服务器端解决方案的限制
   9.1.3 基于Ajax的解决方案
  9.2 客户端体系架构
   9.2.1 设计表单
   9.2.2 设计客户端/服务器端交互
  9.3 服务器端的VB.NET实现
   9.3.1 定义XML响应格式
   9.3.2 编写服务器端代码
  9.4 显示结果
   9.4.1 遍历XML文档
   9.4.2 应用CSS
  9.5 高级问题
   9.5.1 允许多选择查询
   9.5.2 将双组合扩展为三组合
  9.6 重构
   9.6.1 新的和改进过的net.ContentLoader
   9.6.2 创建双组合组件
  9.7 小结
 第10章 输入前提示
10.1 考察输入前提示应用
  10.1.1 常见的输入前提示的特征
  10.1.2 Google Suggest
   10.1.3 实战开发Ajax输入前提示
  10.2 服务器端框架:C#
   10.2.1 服务器与数据库
   10.2.2 测试服务器端代码
  10.3 客户端框架
   10.3.1 HTML
   10.3.2 JavaScript
   10.3.3 访问服务器
  10.4 添加功能:包含不同查询的多个元素
  10.5 重构
   10.5.1 第一天:开发TextSuggest组件的游戏计划
   10.5.2 第2天:创建TextSuggest――清晰而且可配置
   10.5.3 第3天:激活Ajax
   10.5.4 第4天:事件处理
   10.5.5 第5天:提示的弹出框的UI
   10.5.6 重构报告
  10.6 小结
 第11章 增强的Ajax Web门户
  11.1 正在进化的门户
   11.1.1 传统门户
   11.1.2 拥有丰富的用户界面的门户
  11.2 使用Java的Ajax门户的体系架构
  11.3 Ajax登录
   11.3.1 用户表
   11.3.2 服务器端的登录代码:用Java实现
   11.3.3 客户端登录框架
  11.4 实现DHTML窗口
   11.4.1 门户窗口数据库
   11.4.2 门户窗口的服务器端代码
   11.4.3 添加外部JS库
  11.5 添加Ajax自动保存功能
   11.5.1 修改库的代码
   11.5.2 自动保存信息到数据库
  11.6 重构
   11.6.1 定义构造器
   11.6.2 修改AjaxWindows.js库
   11.6.3 指定protal命令
   11.6.4 执行Ajax处理
   11.6.5 重构报告
  11.7 小结
 第12章 使用XSLT的动态搜索
  12.1 理解搜索技术
   12.1.1 考察传统的搜索
   12.1.2 帧和弹出窗口方法的缺点
   12.1.3 研究使用Ajax和XSLT的动态搜索
   12.1.4 向客户端发回结果
  12.2 客户端的代码
   12.2.1 设置客户端
   12.2.2 启动搜索过程
  12.3 服务器端的PHP代码
   12.3.1创建XML文档
   12.3.2 创建XSLT文档
  12.4 合并XSLT和XML文档
   12.4.1 使用微软的IE
   12.4.2 使用Mozilla
  12.5 完成搜索
   12.5.1 应用层叠样式表
   12.5.2 改善搜索
   12.5.3 决定使用XSLT
   12.5.4 克服Ajax书签支持的缺陷
  12.6 重构
   12.6.1 XSLTHelper
   12.6.2 动态搜索组件
   12.6.3 重构报告
  12.7 小结
 第13章 使用AJAX创建独立的应用
  13.1 从外部读取信息
   13.1.1 查找XML提要
   13.1.2 RSS结构
  13.2 创建丰富的用户界面
   13.2.1 流程
   13.2.2 不使用表格的HTML框架
   13.2.3 采用CSS方法做排版
  13.3 加载RSS提要
   13.3.1 全局作用域
   13.3.2 Ajax预加载功能
  13.4 增加丰富的渐变效果
   13.4.1 跨浏览器的不透明规则
   13.4.2 实现淡入/淡出渐变
   13.4.3 集成JavaScript定时器
  13.5 附加功能
   13.5.1 插入额外提要
   13.5.2 集成跳过和暂停功能
  13.6 避免项目的限制
   13.6.1 克服Mozilla的安全限制
   13.6.2 修改应用的范围
  13.7 重构
   13.7.1 RSS阅读器模型
   13.7.2 RSS阅读器视图
   13.7.3 RSS阅读器控制器
   13.7.4 重构报告
  13.8 小结
附录A Ajax工具箱
 A.1 选择正确的工具集更加聪明地工作
 A.1.1 获取适合的工具
  A.1.2 创建自己的工具
  A.1.3 维护工具箱
 A.2 编辑器和IDE
  A.2.1 在代码编辑器中需要什么功能
  A.2.2 当前的工具
 A.3 调试器
  A.3.1为什么要使用调试器
  A.3.2 JavaScript调试器
  A.3.3 HTTP 调试器
  A.3.4创建自己的跨浏览器输出控制台
 A.4 DOM 检查器
  A.4.1 使用Mozilla DOM 检查器
  A.4.2 IE的DOM 检查器
 A.5 安装Firefox扩展
 A.6 资源
附录B 面向对象程序员的JavaScript
 B.1 JavaScript不是Java
 B.2 JavaScript中的对象
  B.2.1创建一个开箱即用(ad hoc)的对象
  B.2 .2 构造函数、类和原型
  B.2.3 扩展内建类
  B.2.4 原型的继承
  B.2.5 JavaScript对象的反射
  B.2.6 接口和“鸭子类型”
 B.3 方法和函数
  B.3.1 函数是一等公民
  B.3.2 向对象附加函数
  B.3.3 从其他对象借用函数
  B.3.4 Ajax事件处理和函数上下文
  B.3.5 JavaScript中的闭包
 B.4 小结
 B.5 资源
附录C Ajax框架和库


本页页面地址:

用户评论列表

#1 评论作者: Jekey 发表时间: 2006-04-25 03:15 下午

不知道书店到货了没,弄一本瞅瞅。还有,文中的例子是不是在java平台下?如果是php,就不爽阿,不会php :(

#2 评论作者: cleverpig 发表时间: 2006-04-25 05:12 下午

文中的例子都是java代码。这个不是问题。而且可以到出版商的网站上下载代码。

#3 评论作者: Stive 发表时间: 2006-04-25 05:34 下午

呵呵,《Ajax in action》的中文版终于出来了,感谢CP的评论,我还担心出得太快会偷工减料呢!
这些应该出手了……keke

#4 评论作者: Bleed 发表时间: 2006-04-25 11:02 下午

今天刚拿到这本书,还没来得及细看。看了它的思想,也很简单,我相信每个深入开发web的程序员都曾经想过这个问题。发送客户端应用给浏览器缓存,更新数据不是内容。实现的技术就更谈不上新了,javascript,css,dom,xml,还有xmlhttp。都是很久前的东西了。但是ajax能火能热,主要就是因为它能把我们已经想过的想做的做到很好,能够把旧的技术通过重组达到神奇。这才是它的真正魅力所在。代码世界是一个需要高度重构的世界,这点ajax做到了。也许很多人会说ajax不过如此,思想我也明白,我也曾想过,但是最重要的一点就是:你没做过,你做得不好。

#5 评论作者: blueRockey 发表时间: 2006-04-25 11:06 下午

请问哪里有下载的?
看起来还是不错的
有的话赶快下一本学学,这些天一个项目可能会用到这些东西

#6 评论作者: jevons_zheng 发表时间: 2006-04-26 08:55 上午

看了英文版的,感觉不是很好。。。。很多问题只停留在概念上,并没有很好的实例。--------个人愚见

#7 评论作者: li_nummereins 发表时间: 2006-04-26 09:04 上午

很早之前就看了英文版,说实话《in action》系列更像知识普及系列(个人愚见)。ajax涉及面之广绝不是一、两本书能说明白的。路漫漫其修远兮啊。

#8 评论作者: hongfu183 发表时间: 2006-04-26 10:12 上午

没有中文的吗?ajax能火能热,主要是实现我们一直想做的事情。。

#9 评论作者: tetsu 发表时间: 2006-04-26 05:25 下午

看了译者序,没头没脑的扯进来一段日本干什么?难道这原书的作者是日本人?呵呵。
日本人做活是细致,这点没得说。不过单这样成不了好的软件。日本人当初气势汹汹的要实现“软件工厂”的时候,把全世界吓住了。时间证明,单把程序员排成一长溜,不能开发出好的软件来。

#10 评论作者: jacek 发表时间: 2006-04-27 05:11 下午

这本书的内容很多是本人在关注或者项目开发中会用到的,值得一看,希望作者能写得详细一点,不过,感觉老外的书讲理论比代码多一些。

#11 评论作者: michaelwang_1978 发表时间: 2006-04-30 11:24 上午 E-mail: michael_wang_1978@hotmail.com

我有一本Ajax基础教程....倒是不错......

#12 评论作者: 123123 发表时间: 2007-11-30 01:09 下午

窃听器窃听器
窃听器窃听器
窃听器美女图片
成人文学免费小说
极品少妇欧美艳星
皇冠投注足球投注

#13 评论作者: fgh567 发表时间: 2008-04-22 11:09 下午

崔天凯:奥运圣火将为增进中日友谊提供新契机
“我每天早起都会游泳一千米,跑二百米肯定没问题。”中国驻日大使崔天凯充满自信地对记者说。“当然,尽管只有短短的二百多米,但我深知其中责任重大。我会用心跑好每一步,切实履行好自己的使命,为整个传递活动取得成功贡献自己的力量。” 再过四天,世人瞩目的北京奥运圣火即将在日本长野进行传递。作为八十名火炬手中的一员,崔大使当天也将高举起祥云火炬,为北京奥运祝福
窃听器
窃听器
窃听器
窃听器


发表我的评论 (评论可增加个人积分...)

用户*: E-mail:
评论内容*:

支持BBCode
算术题*: + =