S-Ajax构建工具箱指南

节选

[

bsp;本书主要介绍如何通过Ajax提升网站的功能,如在基于Web的电子书阅读器中动态加
载章节内容,选择并查看实时股票报价,使用信息弹出窗口动态显示小块内容,通过U.S.
Postal Service Ajax请求动态计算运费等。本书使用构建工具箱的方法将这些功能添加到
Ajax应用程序中,通过本书不仅可以学到有关Ajax的知识,更重要的是将学会如何更好地
开发网站。
    本书浅显易懂,讲解充分,注重应用。适合网站开发与设计人员使用。
      Simplified Chinese edition copyright ~ 2008 by Pearson Education Asia Limited and China
Machine Press.
      Original English language title: Ajax Construction Kit: Building Plug-and-Play Ajax
Applications (ISBN 0-13-235008-4) by Michael Morrison, Copyright ~ 2008.
      All rights reserved.
      Published by arrangement with the original publisher, Pearson Education, Inc., publishing as
Prentice Hall.
    本书封面贴有Pearson Education(培生教育出版集团)激光防伪标签,无标签者不得
销售。 译  者  序
    记得上小学时学过一篇课文,叫《(小白兔和小灰兔)》。说的是老山羊收白菜,小白兔
和小灰兔一起去帮忙。为了感谢它们,老山羊要送给它们白菜。小灰兔收下了白菜,但小
白兔则向老山羊要了一包菜籽。回家后,小白兔辛勤劳动丰收了自己的白菜,而小灰兔则
吃光了老山羊送的白菜。来年,小灰兔只能又来向老山羊要白菜,而小白兔则给老山羊送
来了白菜。这个故事似乎很浅显,但现实中的小白兔和小灰兔却比比皆是。同样的道理,
我国古人也曾留下名言:“授人以鱼,三餐之需;授人以渔,终生之用”。鱼是可解眼前之
饥的食物,而渔则是捕鱼的手段和技能。
    本书就是一本既授人以鱼,又授人以渔的书。书中送给读者朋友的“鱼”是10个具
有代表性的Ajax应用程序;而“渔”则是分析、设计、实现Ajx应用程序的过程和方法。
10个Ajax应用程序都是即时可用的,或者说是即插即用式的。读者不需要懂得太多的
(x)HTML、JavaScript知识,就可以轻松地将这10个Ajax应用程序改造成自己所需的功能,
从而为自己的网站或项目增加Ajax驱动的内容。至于“做鱼”的方法,其实很简单。读
者只需在网页中适当地包含工具箱中提供的相关.js文件(有时也需要包含CSS文件和少
量图像),然后在相应的标签中设置id或class属性或者按照需要添加相应的标签,再为相
应元素添加响应用户动作的事件处理程序(虽然在元素标签中添加事件处理程序不是标
准Web开发思想所推荐的*佳方法,但对于初级的应用而言也不是太大的问题。读者在
熟悉了这种基本的事件响应机制之后,自然能够再过渡到更高级的方法),“鱼”基本上
就“做”好了。剩下的就是享用Ajax大餐的美味了。
    如果读者觉得“鱼”确实好吃,想自己捕鱼,那书中同样也传授了“捕鱼”的实用方
法。这主要体现在本书第二部分“构建真实的Ajax应用程序”中。第二部分的10章内容每
一章都介绍了一种工具箱中的Ajax应用,而且每一章都采用了相同的体例模式。即
    ·挑战:介绍每个应用的背景和优缺点;分析实现该应用所需要的步骤和关键——需
    求分析。
    ·设计:在前面需求分析的基础上对应用程序进行设计。这一阶段又分为三个组成部
    分:客户端网页、服务器端脚本和理解客户端与服务器端对话。这三个部分的设计
    是所有Ajax应用程序的核心所在。这个阶段分析了客户端网页需要通过Ajax向服务
    器发送哪些信息(请求),而服务器又需要向客户端返回(响应)什么数据,*后进
    一步理解客户端与服务器端通信的整个过程模型。根据需要,这一阶段还可能会涉
   及通过服务器脚本访问第三方Web服务的内容——而这主要是为了绕开对客户端不
    能直接向第三方服务器发送请求的限制。当然,有的Ajax应用也可能不需要服务器
    端脚本(比如在向服务器请求文件或图像的情况下),而此时更多的是为了提供Web
    2.0式的用户界面。
  ·实现:在设计阶段理解了客户端与服务器之间的通信过程之后,就可以着手实现
    冬jax应用的各个组成部分并处理它们之间的通信了。当然,这里并不用读者自己编
    码,书中只是帮助读者细致地分析已经编好的代码,以便读者明白应该如何自定义
    这些应用。在这个阶段,读者可以透彻地理解客户端怎样向服务器发送信息,而客
    户端脚本又如何处理服务器返回的数据,并*终将处理后的信息显示在网页中(或
    者更新原有的页面内容);可以理解如何准备服务器端的数据,服务器端脚本如何处
    理客户端的请求,如何向第三方Web服务器发送远程请求,如何对远程服务器响应
    的数据进行必要的处理(或不作任何处理),*后将数据返回给客户端。
  ·测试:在根据设计实现应用之后,就可以进行测试了。在这个阶段,书中又向读者
    介绍了一种非常重要而且实用的测试Ajax应用的方法,即不直接通过客户端页面来
    测试,而是使用请求URL直接访问PHP服务器端脚本,通过检查服务器脚本返回给
    浏览器的数据可以更容易发现问题所在。
  ·扩展:扩展部分书中叫做“某某的终极Ajax应用”。这一部分旨在让读者在现有应用
    程序的基础上,根据自己的需要进行改造,从而更好地满足自己的项目需求。这一
    部分为读者提供了更多的思路、更宽的视角,是对书中提供的10个Ajax应用程序的
    进一步升华。    –
  相信读者在依次学习了第二部分的几章内容之后,就能对AJax应用程序的设计和实现
产生一种豁然开朗的感觉。事实上,即使再复杂的技术,通过简单的重复也能搞清楚,更
何况Ajax并不是很复杂的技术呢?本书第二部分各章的这种体例,从宏观上为读者勾画出
一幅分析、设计、实现Ajax应用的路线图,有助于读者见微知著、举一反三。事实上,这
种编排体例非常符合中国人的思维习惯,即大处着眼、小处着手。通过看似简单的重复,
本书自然而然地把读者带入到了通向更高级程序设计的殿堂门口。
    *后,为了让读者方便地观摩各种“做好的鱼”的“色香味”,书中提供了一张独创性
的Linux Live CD。说到Linux Live CD,可能会吓到一些读者。因为很多读者都知道计算机
操作系统有Windows、Unix、Linux之分,但多数人则只有Windows系统的使用经验。其实
不必怕,这张光盘的名称只是为了表明其中包含的操作系统以及实用程序都是免费开源的,
不需要读者为它们的版权问题而担心。事实上,这张光盘是一张能够在Windows系统中正
常运行的光盘。在Windows系统中,读者有两种选择:一是直接运行,即从光盘重新启动
进入盘载Ubuntu(基于Linux的一种操作系统)中运行并改造本书实例;二是在Windows系
统中安装相应的Web服务器软件(XAMPP)并复制实例代码,然后运行和改造实例。之所
以说这张光盘具有独创性,是因为它开辟了一种交付随书应用程序示例的傻瓜模式,读者
通过这张光盘,几乎不必进行任何设置,也不必上网下载任何代码,就能够在自己的电脑
中迅速查看书中所有的应用程序实例,并且还能对实例进行实时的编辑和改造。
  这本书为读者提供了“鱼”,也提供了“渔”;或者说,提供了“白菜”,也提供了
“菜籽”。那么读者是想做小灰兔还是小白兔呢?
  本书是我与机械工业出版社华章公司合作的**本书。我翻译这本书的*大愿望,就
是读者能够透过我翻译出来的文字,准确无误地理解原书作者的一番精心策划和安排,为
自己在Web开发领域中登堂入室开一个好头。如果读者觉得我的翻译有什么问题,或者对
本书内容有任何疑问,都可以直接和我联系,我的电子邮箱是lsf.email@yahoo.com.cn,个
人网站是http://www.cn-cuckoo.com。读者朋友可以给我发邮件或者在网站上给我留言,我
一定会尽量及时地回复大家。*后,我要感谢陈冀康编辑的信任和他认真负责的工作精神,
这对我翻译好本书提供了切实的保证。
    本书由李松峰负责翻译,参加翻译工作的还有程宝杰、宋连海、付荣艳、封耀杰、贾
爱华、左艳坡、熊俊芹、刘英、宋会敏等。
    李松峰
    2007年11月13日于北京   前言   
  这本书的灵感来自于我和本书编辑的一次磋商,我们都不相信能将两个随机的技术主
题融合到一本书当中。几次书信往来,*终使“Ajax’’和“Live CD”这两个主题结合在
一起了。本书就像是Rails上的Blu-ray或iPod设计模式一样容易。因此,很幸运你挑选出这
本集AJax和Live CD于一体的书。    ·
    事实上,Ajax和Live CD是一对不可思议的好伙伴,因为Live CD为构建并测试Ajax
应用程序提供了理想的环境。所谓“Live CD”就是位于一张cD上的完整的操作系统。
与一个完整的操作系统捆绑在一起的是其他有用的应用程序,例如能够支持Ajax应用程
序运行的Web服务器。
    相对于单独以JavaScript开发的纯客户端应用程序来说,AJax应用程序的唯一特别之处是
它对服务器也有所要求。换句话说,AJax的大前提是客户端与服务器之间的通信。这意味着
你不仅需要一个服务器,而且还需要对服务器进行某种控制。*低限度,你也需要快速安装
并测试(为你的AJax应用程序提供服务器端处理的)服务器端脚本的能力。在为你提供难以
置信的可定制平台,并构建、测试和运行AJax应用程序等方面,Live CD是*佳选择。
    鉴于Live cD如此优秀,我必须诚实地告诉你本书95%的内容都与Ajax相关。由于
A.jax应用程序比纯粹的客户端应用程序对环境的要求更多,所以本书的Live CD主要是为
此提供便利。
    既然本书主要是关于Ajax的,那它的真正含义是什么呢?它真正的含义是,在相对较
少的页数中,让你学习到如何通过ajax实现:
    ·在基于Web的电子书阅读器中动态加载章节内容(第3章)。
    ·选择并查看实时股票报价(第4章)。
    ·将网页变成理解RSS新闻源的新闻聚合器(第5章)。
    ·为你的网站添加自动完成功能(第6章)。
    ·验证表单数据并实时查询位置数据(第7章)。
    ·创建“Web 2.O”式的图像查看器,实现你的页面处理图像方式的现代化(第8章)。
    ·使用信息弹出窗口动态显示小块内容(第9章)。
    ·为任何链接添加实时天气状况弹出窗口(第10章)。
    ·通过U.S.Postal Service Ajax请求动态计算运费(第ll章)。
    ·在你的网页中加入动态的五星评级系统(第12章)。
  这些都是因Ajax才成为可能的动态应用程序。更重要的是,本书使用构建工具箱的方
法来引导你将这些功能添加到ajax应用程序中。虽然通过本书介绍的许多示例,你*终会
学习到许多有关Ajax的知识,但本书的焦点却不是教给你Ajax,而是向你展示如何通过
AJax实现一些很酷的功能。为此,本书有时候可能需要你学习一些全新的东西,而有时候
则只是要求你简单地剪切和粘贴代码。关键在于本书只讲如何做事。
  在我看来,做事就是学习,通过跟着本书一起做事,*终你将获得对AJax的更全面地
理解。但更重要的是,在学习完本书以后,你将拥有自己构建的Ajax程序集合,你可以把
它带在身边并应用到你的项目中。
本书读者对象
    本书在介绍各种Ajax示例时,必须要基于常规原则深入到JavaScript和PHP中。但是,
本书的初衷则是使任何具有HTML和CSS(Cascading Style Sheets,层叠样式表)经验的人
都感到容易阅读,而不是要求读者必须具有脚本编程的背景,无论是客户端(JavaScript)
还是服务器端(PHP)。虽然我并不能完全确定这是一个现实的目标,但它却是我在充分
展示冬jax示例的过程中努力的方向,因此不会对脚本编程的新手造成太大影响。
    总的来说,要看懂这本书,你必须了解一些HTML的基本知识。CSS虽然不是很关键,
但它也会偶尔出现,所以你也要对CSS略知一二。在此基础上,知道有关JavaScript的有关知
识也将对你大有帮助,毕竟它是AJaX 的基础。但是,我相信即使你的Web脚本编程知识有限,
也一定能看懂本书中的JavaScript代码。而在全书中突然出现的PHP代码都非常简单,而且我
会详细解释每段脚本的目的和作用,因此你不必知道任何PHP的知识,也能轻松过关。
本书组织方式
    虽然本书遵循了Negus Live Linux Series系列图书“提供读者亲自实践之体验”的约定,
但本书的组织方式略有不同。本书分为三部分:
    ·**部分,“Ajax训练营”——本书在这一部分没有过分浪费时间,只是介绍了足够
    的基础知识,以便你能承受未来的Ajax示例应用程序的冲击力。你将探索几个商业
    上的真实Ajax应用程序,并初步了解在随书的CD—ROM中存放的Ajax工具箱。然后
    你将离开本书这一部分,迅速转入到Ajax实战当中。
    ·第二部分,“构建真实的Ajax应用程序”——这一部分完全聚焦于使用Ajax解决现实
    中的问题。从在数据登录表单中将邮政编码动态解析为城市(州)名,到将交互式
    五星级评级系统置入网页,本书这一部分内容安排紧凑并具有挑战性——别误会我
    的意思,这部分内容读起来也会津津有味。但可别指望其中包含不厌其烦的教程式
   讲解或者对Ajax历史渊源的探讨。一句话,这一部分就是专门针对干活儿的!
    ·第三部分,“附录”——本部分提供可能对你有帮助的附加信息。附录A勾勒出一幅
    有关Ajax来龙去脉的图画。虽然这些内容对你理解如何将Ajax驱动的功能添加到自
    己的网页中并不至关重要,但却给今天甚嚣尘上的Ajax加入了某些设想与展望。附
    录B实际是作为Ajax核心的一个JavaScript对象(XMLHttpRequest)的参考。由于有
    了Ajax’V_具箱,这个对象在全书内容中都被极大程度地隐藏了。但是,如果你想再
    稍微深入一下这些代码并对工具箱进行改造,则必须要了解XMLHttpRequest对象。
    *后,附录c是所有附录中无可争辩的*方便的内容,因为它全面翔实地解释了如何
    使用本书附带的Live Linux CD。假如你从没用过甚至听说过Live CD,那也不用担心,
    而且你也不需要是一个Linux专家或者使用Linux系统。附录C介绍了Live CD的功能,
    并指导你在自己特殊的硬件设置下顺利地使用它。
本书光盘
    本书附带的光盘就是Live cD与Ajax结合的产物。这张光盘中包含自启动的Ubuntu
(Linux的变体)操作系统,其中捆绑了Apache Web服务器以及本书涉及的全部Ajax示例应
用程序。更有意思的是你可以在系统启动后,直接在这张光盘上运行所有应用程序,其强
大之处体现在你可以省去配置并运行自己的Web服务器的麻烦。
    实际上,使用本Live Linux CD中的Ajax示例应用程序的方式有好多种。你不需要在自
己的计算机中运行Linux操作系统——只要一台Pentium III(或更高的)计算机就足够了。
本Live CD可以在Winodws、Mac OS x或其他Linux变体中运行。要了解如何使用本光盘探
索示例应用程序的更多细节,请参考附录c。
运行光盘的要求
  Live Linux cD可以在广泛的计算机硬件基础上运行,例如标准的PC架构(i386)、
PowerPC(PPC)和64位AMD(AMD64)。运行本书附带光盘的*低推荐配置为Pentium
III级别的PC,内存至少128MB。至于对硬盘的需求,你甚至都不需要使用计算机中的硬
盘就能运行Live CD。但可能需要准备一个USB闪存盘(有时候也叫做笔式闪存、u盘或记
忆棒)。因为Live cD典型是在只读媒体(光盘)上运行的,所以USB闪存盘对于需要写入
数据的情况(比如在第12章中)是很方便的。同样,请参考附录c中如何使用Live CD的详
细指南。

,

 

,

 

]

本书特色

[

 听说过大名鼎鼎的Ajaxil马?知道怎样用它来提升网站的可用性、交互性、响应及时性,并使网站
更成功吗?即使你从未写过一行脚本代码,本书也能马上让Ajax开始为你效力!只要掌握一些基本的
要点、试验几个例子,然后运行Live CD就可以从中找出你需要的“即插即用”式代码。
    在本书讲解的应用程序中,不落俗套的新意和惊喜随处可见。而通过作者的悉心指导,你会逐
步加深对每个应用程序示例的理解,学会如何自定义、扩展并重用这些应用程序;甚至掌握自己重新
开发新应用程序的技能。好了,让我们与专家同行吧!
·动态加载数据。    ·构建具有杀手级界面的图像查看器。
·动态生成列表项目。    ·通过平滑的弹出式窗口表现信息或广告。
·开掘RSS新闻源。    ·提供*近天气预报。
·使用自动完成减少输入。    ·构建电子商务应用中的运费计算器。
·以实时验证来创建即时响应的GUI。    ·为你的网站增加评级工具。

]

作者简介

[

p>   关于作者
  Michael Morrison是一位作家、开发者、玩具发明家,编写了多本计算机书籍,这些书
籍涉及的领域有Java、Web脚本编程、游戏开发以及移动设备等。Michal的一些知名著作
包括((JavaScript Bible))(第6版,Wiley,2006)、((Teach Yourself HTML and CSS in 24
Hours))(第7版,Sams Publishing,2005)、((Beginning Mobile Phone Game Programming))
(Sams Publishing,2004)和《Java Unleashed)》(Sams Publishing,1997)。Michael还是几门
基于Web课程的讲师包括DigitalThink的Introduction to Java 2系列、JavaBeans for
Programmers系列以及Win32 Programming系列(www.digitalthink.com)。
  Michael不仅是

]

封面

S-Ajax构建工具箱指南

书名:S-Ajax构建工具箱指南

作者:莫思思

页数:235

定价:¥36.0

出版社:机械工业出版社

出版日期:2008-01-01

ISBN:9787111229391

PDF电子书大小:86MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注