当前位置:首页 > 百科

征服RIA:基于JavaScript的Web客户端开发

《征服RIA感形降期准:基于Java做映阻叶从皮底Script的Web客户端开发》是2009年电子工业来自出版社出版的图书,作者是涂传滨、杨先亭。

  • 书名 征服RIA:基于JavaScript的Web客户端开发
  • 作者 涂传滨,杨先亭
  • 类别 图书>>计算机>>web开发
  • 出版社 电子工业出版社
  • 出版时间 2009年3月1日

前 言

  RIA是什么

  RIA是Rich Internet Application的缩写,意为富互联网应用,引申为富客户端应用。那么,RIA意味着什么呢?在回答这个问来自题之前,我们不妨先回顾一下360百科从大型主机时代开始,应用软件系统发展至今所走过的历程:

  图中的两个坐标轴,分别代表Rich和Reach,即应用软件的界面表现力和应用软件所能影响到的人群。

  1.主机时代,界面表现力和用户数量无疑是最低的。少量的用户使用哑终端操作计算机。

  2.随着计算机制造成本的降低,尤其是个人计算机的普及,使得软件行业出现了一种新的部署结构:客户机负责提供丰富的用户界面、承担里毛免酒秋端再树业务逻辑,在服务器上集中存储数据。这一阶段被称为C/S(Client/Server)时代创心议头举取太周办继

  3.C/S结构最大的问题是部署和维护成察法玉粮业科殖是面他本极高,一旦用户界面或者业务逻辑发生变化,便需要更新分布在每一台客户机上的软件。因此,B/S(Browser/Server)结构应运而生。在B/S结构中,客户端程序统一运行在Web浏览器中,用占阳新府消于户界面由服务器程序渲染生成,客户端程序只负责展现。部署成本的夫女称你密讨够均阻降低,使得应用软件的用户数量激增:互联网能达到的地方,都可能出现你的用户。

  4.B/S结构至今被人褒贬不一。首先,客户机的计算能力几乎被废弃了,这是一种浪费;其次,用户界面的表现能力染写白推受制于Web浏览器,比起C/S把诗手于状结构发生了倒退。那么,能否创造一种在应用策抓个小短用父求按软件的界面表现力四叶前也班九调和部署成本之间双赢的局面呢?这就是所谓的RIA。

  富客户端应用也称胖客户端洲板坚证车千还我应用,是相对于B/S时代的瘦客户端应用而言的。在RIA时代,一个运行于Web浏览器中的客户端应用,要上升为富客户端应用,应该具备三个条件:

  不输给桌面应用的、具有丰富效果的复杂用户终如山刻粮子试界面。

  有能力调度服务端的业务逻辑,自行措望阶元缺八明支钢货组装所需要的用户界面,而不是一味地由服务端渲染生成用户界面。

  在大渐敌许省注粉一定程度上突破Web浏览器的限制。例如,在必要时能接收服务器推送来的数据,这意味着打破"浏览器请求、服务器响应"的单调格局。又例如,在必要时能在客户端存储部分数据--这是无与伦比的一次跨越,一旦拥有存储能力,富客户端应用便能在离线状态下继续为用户提供服务。

  JavaScript能为RIA做什么

  接下来,我们从技术方面分析RIA所能选择的实现手段。笔者归纳,致力于富客户端这一技术领域的IT厂商大致可以划分为以下4个阵营。

  微软阵营:鉴于微软是个人计算机操作系统应企务镇消逐居厚担副医的最大供应商,出于强化个人计算机地位的初衷,一直致力于富客户端应用开发技术的研发,这一点从其新近于.NET Fram点胞善县预易美喜传表第ework 3.0中集成的WPF,伴随着Windows Vista推出的Windows边栏Gadgets,以及Silverlight等概念中便可见一斑。再加上原有的.NET WinForm、Win32 Application、ActiveX等,临批映验斤死务微软真不愧是乐此不疲的客户端应用开发技术的"高产户"。其中的ActiveX和Silverlight属于Web浏览器插件技术,非常有可能在RIA市场上抢到一些份额。

  Adobe阵营:Adobe紧锣密鼓地推出Apollo计划,在其集成开发环境F斯身而lex Builder中,使用ActionScript既能开发运行于Flash Player中的Flash,又能开发运行于桌面的AIR应用。由于Flash已经无处不在,Adobe是非常令人看好的一股力量。

  Sun阵营:提到Sun的大名,自然令人想到Java。没有人奢望JavaFX及SWT/Swing/AWT能撼动微软和Adobe,但是在桌面应用方面形成三足鼎立的局面还是值得期待的。在浏览器应用方面,Applet和Java Web Start已经积累下一些成功案例。

  Google、Mozilla阵营:Google是云计算和SaaS(Software as a Service)的领导厂商;Mozilla则拥有技术领先的Web浏览器。这是唯一没有推出自己的桌面应用开发技术,而把全部的赌注押在Web上的阵营。JavaScript+HTML+CSS的组合,远没有Silverlight和WPF看起来那么光彩照人,也不像Apollo计划那么活力四射。但是,正是这一组合,让微软不由得发出"Silverlight最大的对手是JavaScript"的感慨。也正是凭借着这一组合,Google开发出了GMap、GMail、GTalk等令人大开眼界的应用。出于自信,Google认为,未来RIA的平台标准已经确立了,那就是Web。

  在琳琅满目的实现方式中,JavaScript在其中巧妙地穿针引线,扮演着"黏合剂"的作用。JavaScript与各种浏览器插件技术(Silverlight、ActiveX、Flash、Applet)均拥有互操作能力,无论这种插件技术是主流的、还是生僻的,是传统的、还是现代的。

  JavaScript是唯一不需安装任何插件,便被各大主流Web浏览器支持的动态脚本,可谓拥有天然的跨平台性。未来之RIA,必是以JavaScript为核心!

本书的内容

  征服RIA:基于JavaScript的Web客户端开发全书共分为5篇。JavaScript基础篇:介绍JavaScript的语法和基础应用。如果不打算深究JavaScript幕后机制的话,运用本篇的知识便能胜任一般的JavaScript开发了。JavaScript高级篇:揭示JavaScript的运行机理和高级应用,如面向对象编程、函数式编程和元编程。Ajax篇:Ajax是上帝赐予JavaScript的礼物。凭借着Ajax,JavaScript拥有了异步调度服务端业务逻辑的能力。本篇除介绍Ajax原理和通用框架之外,还分别为从事Java和。NET开发的程序员安排了适合他们的DWR、Atlas框架。Ext篇,增值篇等内容。

  本书旨在向读者推介以JavaScript为核心的RIA开发。读者将能从本书中发现,JavaScript如何整合各种技术流派,开发出名副其实的RIA:具有复杂用户界面,以Ajax方式异步调度服务端业务逻辑、自行组装所需的用户界面,同时突破Web浏览器的限制,具备长连接和离线能力。

  全书共分30章、1个附录。

如何使用本书

  本书共分为5篇:

  JavaScript基础篇:介绍JavaScript的语法和基础应用。如果不打算深究JavaScript幕后机制的话,运用本篇的知识便能胜任一般的JavaScript开发了。

  JavaScript高级篇:揭示JavaScript的运行机理和高级应用,如面向对象编程、函数式来自编程和元编程。

  Ajax篇:Ajax是上帝赐予JavaScript的礼物。凭借着Ajax,JavaScript拥有了异步调度服务端业务逻辑的能力。本篇除介绍Ajax原理和通用框架之外,还分别为从事Java和.NET开发的程序员安排了适合他们的DWR、Atlas框架。

  Ext篇:能否提供复杂用户界面,是RIA的一个重要判定标准。在本书中,笔者把这一重任交给了Ext。希望读者能够基于Ext开发出不输给桌些跟右源独握省洲得补面程序的Web应用亮球

  增值篇:增值篇是本书的华彩乐章。在这一篇中,读者们将看到JavaScript如何游刃有余地整合各种技术流派,包括Flash、Applet、Silver式百误尼落到孔令配构light、Active360百科X等,如何开发反向Ajax程序、Comet程序和具备离线能力的程序。

  请读者关注上述的本书内容组织方式,基于这一方式马练就百息回简减析高山,造成同类知识有时会分散在不同章节中的现象。而造成这一现象的深层次原因,则在于RIA技术选型实在太广泛了。希望读者能够融会贯通。

  例如Function对象。在JavaScript基础篇中仅仅把Function作为JavaScript语法中的一个知识点,而在JavaScript高级篇中则应该将其理解为JavaScript高级编程的精髓所在。

  又例如反向Ajax和Comet模式这一对具有内在联系的概念。在"适用于Java的Ajax框架--DWR"一章中首次引出反向Ajax这一概念;在"Comet(Server Push)模式"一章中再度实践了一次反向Ajax;而在"用JavaScript操作ActiveX插件"和"JavaScript与ActionScript的互操作"两章中,利用ActiveX和Flash技术再次分别实现了Comet模式。

  在RIA和JavaS犯笑律较cript开发领域,不存在深奥的理论,有的只是动手实践的快乐。笔者和同事杨先亭是怀着轻松愉悦的心情完成本书的,也祝大家阅读愉快!

  最后,在两句略具调侃韵味的口号声中结束本文。

  全世界计算机,联合起来查地笔结海乙环否顺基科!

  以JavaScript为核心,夺取RIA开发的更大胜利!

  涂传滨

  2008年12探其儿月27日于厦门

目 录 JavaScript基础篇

第1章 JavaScrip呢内袁厚充常t基础

  1.1 JavaScript概述 2

  1.1.1 JavaScript的特点 2

  1.1.2 JavaScript的局限性 3

  1.2 从网页中引用JavaScript 5

  1.2.1 定义脚本语言的类型 5

  1.2.2 调用外部脚本文件 6

  1.3 创建JavaScript文件 7

  1.4 JavaScrip造之蛋何洲区t注释 9

第2章 JavaScript语法

  2.1 JavaScript变铁制居围永吃量 11

  2.1.1 在脚本中定义变量 11

  2.1.2 变量类型 13

  2.1.3 数据类型之间的转换 13

  2.1.4 存取变量 14

  2.2 JavaScript函数 15

  2.2.1 定义函数 15

  2.2.2 输入参数 16

  认须会须考为几粮对协吗2.2.3 函数输出值 18

  2.3 JavaScript运算符 18

  2.3.1 概述 19

  2.3.2 算术运算符 19

  2.3.3 赋值运算符 21

  2.3.4 比较运算符 22

  2.3.5 逻辑运算符 23

  2各映.3.6 位运算符 23

  2.3石社月的境.7 运算顺序 24

  2.4 条件与循环语句 25

  2.4.1 条件语句的定义 25

  2.4.2 条件语句 26

  司科2.4.3 循环语句欢些失背总衡民话的定义 28

  2.4.4 循环语句 29

第3章 事件与对象

  3.1 事件句柄 32

  3.1.1 事件句柄的定义 32

  3.1.2 常用事件句柄 33

  3.1.3 其他事件 36

  3.1.4 动态添加事件响应 42

  3.2 JavaScript对象 43

  3.2.1 什么是对象 43

  3.2.2 创建对象 44

  3.2.3 JavaScript内置的浏览器对象 45

  3.2.4 对象方法劫持 46

第4章 常用对象

  4.1 JavaScript数组 49

  4.1.1 数组的含义 49

  4.1.2 定义和操作数组 50

  4.1.3 Array对象的属性 51

  4.1.4 Array对象的方法 52

  4.1.5 关联数组 60

  4.1.6 数组应用举例--记忆脚本动作 60

  4.2 数学和日期对象 63

  4.2.1 数学对象 63

  4.2.2 数学对象的属性 63

  4.2.3 数学对象的方法 65

  4.2.4 日期对象 68

  4.3 字符串 75

  4.3.1 字符串对象简介 75

  4.3.2 字符串对象的属性 75

  4.3.3 字符串对象的方法 77

  4.3.4 正则表达式 86

第5章 JavaScript与浏览器

  5.1 document对象 91

  5.1.1 document对象简介 91

  5.1.2 document对象的属性 92

  5.1.3 document对象的方法 102

  5.1.4 访问本地文件系统 103

  5.2 window对象 105

  5.2.1 window对象简介 105

  5.2.2 window对象的属性 106

  5.2.3 window对象的方法 112

  5.3 JavaScript与表单 121

  5.3.1 表单存取 121

  5.3.2 表单元素的属性 122

  5.3.3 表单元素的方法 125

  5.3.4 表单的提交 126

  5.4 JavaScript与框架 128

  5.4.1 框架简介 128

  5.4.2 框架的选项 131

  5.4.3 定位框架 132

  5.4.4 操作框架 133

目录 JavaScript高级篇

第6章 JavaScript面向对象编程

  6.1 对象的多态性 136

  6.1.1 自定义对象的多态性 137

  6.1.2 内置对象的多态性 137

  6.2 对象的创建 138

  6.2.1 使用内置对象 139

  6.2.2 使用JSON符号 139

  6.2.3 自定义对象构造 139

  6.3 对象的继承 140

  6.3.1 原型链继承 141

  6.3.2 使用apply、call方法 141

  6.3.3 对象实例间的继承 143

  6.4 对象成员的可见性 143

第7章 JavaScript数据类型

  7.1 数据类型 146

  7.1.1 Number 147

  7.1.2 String 147

  7.1.3 Boolean 148

  7.1.4 Undefined 148

  7.1.5 null 148

  7.1.6 复合类型 149

  7.2 数据类型转换 149

  7.2.1 转换为Number 149

  7.2.2 转换为String 150

  7.2.3 转换为Boolean 150

  7.3 数据的传递 151

  7.3.1 值传递 151

  7.3.2 引用传递 152

第8章 JavaScript函数对象

  8.1 JavaScript Function对象 153

  8.1.1 Function对象的属性和方法 153

  8.1.2 定义Function 156

  8.2 闭包 157

  8.2.1 闭包的应用 157

  8.2.2 避免闭包引发的问题 158

  8.3 函数式编程 160

  8.3.1 函数式编程的思想 160

  8.3.2 函数式编程的原理 160

  8.3.3 函数式编程的应用 161

  8.4 元编程 163

  8.4.1 元编程的思想 163

  8.4.2 元编程的应用 163

第9章 JavaScript运行机制

  9.1 作用域链(Scope Chian) 165

  9.1.1 从var说起 165

  9.1.2 Scope Chain是什么 167

  9.2 原型链(Prototype Chain) 168

  9.3 两个隐式对象 169

  9.3.1 this 169

  9.3.2 Global 170

第10章 JavaScript正则表达式

  10.1 正则表达式基础 172

  10.1.1 元字符 172

  10.1.2 元字符操作优先级顺序 174

  10.1.3 贪婪匹配与非贪婪匹配 175

  10.1.4 分组 175

  10.1.5 反向引用 176

  10.2 RegExp和正则表达式对象 176

  10.2.1 RegExp对象 176

  10.2.2 正则表达式对象 178

  10.3 NFA和DFA正则表达式引擎 179

目录 Ajax篇

第11章 Ajax概述

  11.1 Ajax的由来 182

  11.2 传统的Web运用 183

  11.3 Ajax的工作原理 184

  11.4 Ajax的优点与缺陷 184

第12章 Ajax用到的技术

  12.1 HTML与XHTML 185

  12.1.1 HTML、XHTML与Ajax 185

  12.1.2 HTML基础 186

  12.1.3 XHTML基础 189

  12.2 XML 191

  12.3 JSON 192

  12.3.1 JSON与Ajax 192

  12.3.2 JSON基础 193

  12.4 CSS 194

  12.4.1 CSS与Ajax 194

  12.4.2 使用CSS的方法 194

  12.4.3 CSS语法 195

  12.5 JavaScript 197

  12.6 DOM与DHTML 197

  12.6.1 DOM、DHTML与Ajax 197

  12.6.2 操作HTML、XHTML文档 198

  12.6.3 操作XML文档 201

  12.7 HTTP 203

  12.8 XmlHttpRequest对象 205

  12.8.1 XmlHttpRequest对象与Ajax 205

  12.8.2 XmlHttpRequest对象简介 205

第13章 Ajax开发简略

  13.1 如何使用Ajax 207

  13.1.1 初始化对象 207

  13.1.2 指定响应函数 208

  13.1.3 发出HTTP请求 209

  13.1.4 处理服务器返回的信息 210

  13.2 字符乱码处理 211

  13.2.1 字符集 212

  13.2.2 字符编码 214

  13.2.3 实例 215

  13.3 prototype.js 217

  13.3.1 通用性方法 217

  13.3.2 Ajax对象 219

  13.4 MooTools 221

第14章 适用于Java的Ajax 框架

  14.1 DWR简介 225

  14.2 DWR的回调机制 226

  14.3 DWR的异常机制 227

  14.4 DWR内核 228

  14.5 DWR的配置 229

  14.5.1 Web.xml的配置 229

  14.5.2 dwr.xml的配置 230

  14.5.3 DWR的WebContext 234

  14.6 DWR应用实例 235

  14.7 利用DWR实现反向Ajax 243

第15章 适用于.NET的Ajax 框架

  15.1 在Visual Studio 2005中手工开发Ajax应用 248

  15.2 在Visual Studio 2005中设置Atlas框架环境 252

  15.3 Atlas例程 252

目录 Ext篇

第16章 Ext概述

  16.1 组件模型 258

  16.1.1 组件的创建 259

  16.1.2 组件的渲染 260

  16.1.3 组件的销毁 260

  16.2 容器模型 261

  16.3 布局模型 261

  16.4 Ext核心 262

  16.4.1 Ext 262

  16.4.2 Observable 266

  16.4.3 MixedCollection 269

  16.4.4 总结 271

第17章 Ext数据操作

  17.1 数据传输 272

  17.2 数据处理 277

  17.2.1 数据访问代理Ext.data.DataProxy 277

  17.2.2 数据解析器Ext.data.DataReader 278

  17.3 数据模型 279

第18章 Ext组件

  18.1 所有组件的始祖Ext.Component 282

  18.1.1 Xtype 283

  18.1.2 Ext的UI组件库 283

  18.1.3 Ext.Component的主要属性 284

  18.1.4 Ext.Component的主要方法 285

  18.2 容器组件的始祖Ext.BoxComponent 288

  18.2.1 Ext.Container 288

  18.2.2 Ext.Panel 289

  18.3 表格相关组件 292

  18.3.1 GridPanel 292

  18.3.2 TabPanel 295

  18.4 菜单相关组件 302

  18.4.1 TreePanel 302

  18.4.2 ToolBar 304

  18.4.3 Menu 305

  18.5 表单相关组件 307

  18.5.1 FormPanel 307

  18.5.2 BasicForm 308

  18.5.3 Field 310

  18.5.4 FieldSet 311

  18.6 窗口相关组件 311

  18.6.1 Window 311

  18.6.2 MessageBox 314

  18.7 Ext组件小结 317

第19章 Ext布局

  19.1 Ext.Element 320

  19.2 Ext.EventManager 322

  19.3 Ext.DomQuery 324

  19.4 布局管理器 325

  19.4.1 ContainerLayout 326

  19.4.2 FitLayout 326

  19.4.3 TableLayout 327

  19.4.4 AnchorLayout 329

  19.4.5 BorderLayout 330

  19.4.6 ColumnLayout 332

  19.4.7 Accordion 333

  19.4.8 CardLayout 335

  19.4.9 AbsoluteLayout 337

  19.4.10 FormLayout 338

目录 增值篇

  第20章 基于JavaScript的 ASP开发 342

  第21章 用JavaScript操作Silverlight 365

  第22章 Windows平台上的HTML组件与脚本宿主 373

  第23章 用JavaScript制作 COM组件 387

  第24章 用JavaScript操作ActiveX插件 392

  第25章 Java与JavaScript 的互操作 409

  第26章 JavaScript与ActionScript的互操作 429

  第27章 Comet(Server Push)模式 448

  第28章 基于Google Gears 开发离线应用 456

  第29章 用XSLT转换XML 数据岛 470

  第30章 JavaScript开发工具箱 481

  附录A Gadgets开发概览 497

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信
上一篇:小蓬草
下一篇:孽欲隔墙花

相关文章