资源名称:Ja vaSc ript实战

内容简介:

本书是一部讲述 Javascript实战项目开发的精彩著作,由两部分组成。第一部分讨论一般性的 Javascript主题,包括 Javascript的简史、好的编码习惯、调试技巧和工具等;第二部分是 10个具体项目,每一章都会提出一个不同的应用,分析其内在的工作原理,然后提供能够提高读者技巧的练习。这些项目的范围从通用的小工具(可执行的计算器)到当代的各种创意(混搭),再到单纯的趣味性(Javascript游戏)。

本书非常适合 Web开发人员阅读和参考。

资源目录:

第一部分 向我的小朋友Javascript问好

第1章 Javascript简史 2

1.1 Javascript的问世 2

1.2 Javascript的发展:出牙期的疼痛 4

1.2.1 但它是相同的代码:浏览器的不兼容

1.2.2 蜗牛和大象:Javascript性能和内存问题 7

1.2.3 所有罪恶的根源:开发者! 11

1.2.4 DHTML——魔鬼的时髦词 13

1.3 进化还在继续:接近可用性 15

1.3.1 建立一个更好的窗口小部件:代码结构 15

1.3.2 重拾好习惯 17

1.4 终极进化:专业的Javascript 17

1.4.1 浏览器 18

1.4.2 面向对象的Javascript 19

1.4.3 “负责的”Javascript:迹象和前兆 21

1.5 小结 22

第2章 成功的Javascript开发者的

7个习惯 23

2.1 更多面向对象的Javascript 23

2.1.1 简单的对象创建 24

2.1.2 使用JSON创建对象 25

2.1.3 类的定义 26

2.1.4 原型 26

2.1.5 你应该使用哪种方法呢 27

2.1.6 面向对象的好处 27

2.2 柔性衰减和不唐突的Javascript 28

2.2.1 让Javascript保持独立 28

2.2.2 允许柔性衰减 29

2.2.3 不要使用浏览器嗅探例程 32

2.2.4 不要写浏览器相关或者语言相关的Javascript代码 32

2.2.5 合适的变量作用域 33

2.2.6 别用鼠标事件来触发需要的事件 34

2.3 并不只是为了秀:关注可访问性 35

2.4 当生活赐予你葡萄,就酿成酒吧:错误处理 35

2.5 当它并没有向正确的方向发展时:调试机制 38

2.6 让生活更加美好的浏览器扩展 40

2.6.1 Firefox扩展 40

2.6.2 IE扩展 45

2.6.3 Maxthon扩展:DevArt 48

2.7 Javascript库 50

2.7.1 Prototype 5

2.7.2 Dojo 51

2.7.3 Java Web Parts 52

2.7.4 script.aculo.us 53

2.7.5 YUI库 53

2.7.6 MochiKit 54

2.7.7 Rico 54

2.7.8 Mootools 55

2.8 小结 55

第二部分 项 目

第3章 Hodgepodge:构建可扩展的Javascript库 58

3.1 Bill,菜鸟的一天 58

3.2 全面的代码组织 59

3.3 创建包 62

3.3.1 构建jscript.array包 62

3.3.2 构建jscript.browser包 64

3.3.3 构建jscript.datetime包 64

3.3.4 构建jscript.debug包 66

3.3.5 构建jscript.dom包 69

3.3.6 构建jscript.form包 72

3.3.7 构建jscript.lang包 76

3.3.8 构建jscript.math包 77

3.3.9 构建jscript.page包 77

3.3.10 构建jscript.storage包 79

3.3.11 构建jscript.string包 81

3.4 测试所有代码片段 87

3.5 练习 88

3.6 小结 88

第4章 CalcTron 3000:Javascript计算器 89

4.1 计算器项目的需求和目标 89

4.2 CalcTron预览 89

4.3 Rico特性 91

4.4 剖析CalcTron的解决方案 93

4.4.1 编写calctron.htm 93

4.4.2 编写styles.css 96

4.4.3 编写CalcTron.js 98

4.4.4 编写Classloader.htm 101

4.4.5 编写Mode.js 106

4.4.6 编写Standard.json和Standard.js 108

4.4.7 编写BaseCalc.json和BaseCalc.js 116

4.5 练习 121

4.6 小结 122

第5章 怪物混合:混搭 123

5.1 什么是混搭 123

5.2 怪物混搭的需求和目标 124

5.3 Yahoo的API 124

5.3.1 Yahoo Maps地图服务 127

5.3.2 Yahoo的注册 128

5.4 Google的API 128

5.5 script.aculo.us特效 130

5.6 怪物混合(搭)的预览 133

5.7 剖析怪物混搭的解决方案 134

5.7.1 编写styles.css 135

5.7.2 编写mashup.htm 137

5.7.3 编写ApplicationState.js 140

5.7.4 编写Hotel.js 142

5.7.5 编写SearchFuncs.js 143

5.7.6 编写Masher.js 145

5.7.7 编写CallbackFuncs.js 147

5.7.8 编写MapFuncs.js 150

5.7.9 编写MiscFuncs.js 152

5.8 练习 153

5.9 小结 154

第6章 不要只考虑眼前:客户端的持久对象 155

6.1 通讯录的需求和目标 155

6.2 Dojo特性 156

6.2.1 Dojo和cookie 157

6.2.2 Dojo窗口小部件和事件系统 159

6.2.3 本地共享对象和Dojo存储系统 159

6.3 通讯录的预览 161

6.4 剖析通讯录的解决方案 163

6.4.1 编写styles.css 164

6.4.2 编写dojoStyles.css 166

6.4.3 编写index.htm 167

6.4.4 编写goodbye.htm 174

6.4.5 编写EventHandlers.js 174

6.4.6 编写Contact.js 178

6.4.7 编写ContactManager.js 181

6.4.8 编写DataManager.js 187

6.5 练习 192

6.6 小结 193

第7章 JSDigester:消除客户端XML的痛苦 194

7.1 在Javascript中解析XML 194

7.2 JSDigester需求和目标 196

7.3 Digester如何运转 197

7.4 剖析JSDigester的解决方案 199

7.4.1 编写测试代码 200

7.4.2 理解JSDigester的整体流程 205

7.4.3 编写JSDigester代码 205

7.4.4 编写规则类代码 212

7.5 练习 217

7.6 小结 218

第8章 做正确:Javascript验证框架 219

8.1 JSValidator需求和目标 219

8.2 怎么把它拔下来 220

8.3 Prototype库 221

8.4 JSValidator的预览 222

8.5 剖析JSValidator的解决方案 226

8.5.1 编写index.htm 227

8.5.2 编写styles.css 228

8.5.3 编写jsv_config.xml 229

8.5.4 编写JSValidatorObjects.js 232

8.5.5 编写JSValidator.js 24

8.5.6 编写JSValidatorBasic-Validators.js 251

8.5.7 编写DateValidator.js 254

8.6 练习 256

8.7 小结 256

第9章 痴迷于窗口小部件:使用GUI窗口小部件框架 257

9.1 JSNotes的需求和目标 257

9.2 YUI库 258

9.3 JSNotes的预览 259

9.4 剖析JSNotes的解决方案 261

9.4.1 编写index.htm 261

9.4.2 编写styles.css 263

9.4.3 编写Note.js 267

9.4.4 编写JSNote.js 267

9.5 练习 294

9.6 小结 295

第10章 支持拖放的购物车 296

10.1 购物车项目的需求和目标 296

10.2 柔性衰减,或者说在石器时代工作 297

10.3 MochiKit库 299

10.4 仿真服务器技巧 301

10.5 购物车应用的预览 303

10.6 剖析购物车的解决方案 306

10.6.1 编写styles.css 306

10.6.2 编写index.htm 308

10.6.3 编写main.js 311

10.6.4 编写idX.htm 314

10.6.5 编写CatalogItem.js 315

10.6.6 编写Catalog.js 320

10.6.7 编写CartItem.js 321

10.6.8 编写Cart.js 324

10.6.9 编写viewCart.htm 330

10.6.10 编写checkout.htm 333

10.6.11 编写mockServer.htm 334

10.7 练习 337

10.8 小结 337

第11章 休息时间:Javascript游戏 338

11.1 K&G街机游戏的需求和目标 338

11.2 K&G街机游戏的预览 339

11.3 剖析K&G街机游戏的解决方案 341

11.3.1 编写index.htm 341

11.3.2 编写styles.css 345

11.3.3 编写GameState.js 347

11.3.4 编写globals.js 348

11.3.5 编写 main.js 348

11.3.6 编写consoleFuncs.js 354

11.3.7 编写keyHandlers.js 358

11.3.8 编写gameFuncs.js 360

11.3.9 编写MiniGame.js 363

11.3.10 编写Title.js 364

11.3.11 编写GameSelection.js 365

11.3.12 编写CosmicSquirrel.js 368

11.3.13 编写Deathtrap.js 374

11.3.14 编写Refluxive.js 381

11.4 练习 385

11.5 小结 386

第12章 Ajax:客户端和服务器端相遇 387

12.1 聊天系统的需求和目标 387

12.2 “经典”的Web模型 388

12.3 Ajax 390

12.3.1 Ajax思维的核心 391

12.3.2 可用性以及类似的考虑 392

12.3.3 Ajax:一个需要大多数人转换的观念 393

12.3.4 Ajax的“Hello, World”例子 394

12.4 JSON 400

12.5 Mootools 401

12.6 聊天应用的预览 402

12.7 剖析聊天系统的解决方案 404

12.7.1 编写SupportChat.js 405

12.7.2 编写ChatMessage.js 412

12.7.3 编写styles.css 415

12.7.4 编写index.htm和index_support.htm 416

12.7.5 编写chat.htm 418

12.7.6 编写goodby.htm 422

12.7.7 创建数据库 422

12.7.8 编写服务器代码 423

12.8 练习 436

12.9 小结 436

资源截图:

Ja vaSc ript实战