《Ext江湖》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:大漠穷秋著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121148620
  • 页数:779 页
图书介绍:本书以幽默诙谐的语言由浅入深地解析了Ext框架的方方面面,包括js基础复习、Ext的DOM和CSS封装、内置对象的扩展、事件系统、Ajax和Direct、数据和缓存架构、面向对象和继承、UI组件、布局管理、模板、特效、图表和报表、Ext4新特性介绍等内容。文中穿插大量的实例和基础理论解析,寓教于乐,严谨而不失活泼。对于Ext的使用者来说,本书针对实战中面临的种种问题,给出了详尽的解决方案和思路;对于想研究源码的读者来说,本书绝对是难得的良师益友。

第1章Ext史前 1

1.1一个页面做两周 1

1.1.1变量、对象、数组 5

1.1.1.1变量 5

1.1.1.2对象和数组 7

1.1.2其他重要内置对象 8

1.1.2.1 Nubmer对象 8

1.1.2.2 String对象 9

1.2.2.3 RegExp对象 10

1.1.3等值判定 10

1.1.4‖运算符 10

1.1.5!运算符 11

1.1.6类型转换技巧 11

1.1.7特殊运算符 12

1.1.7.1 instanceof语句 12

1.1.7.2 typeof语句 13

1.1.7.3 delete运算符 13

1.1.7.4[]运算符 14

1.1.7.5()运算符 15

1.1.7.6 eval语句 15

1.1.7.7三目运算符 16

1.1.7.8 for … in语句 16

1.1.7.9 with语句 18

1.2缘起Ext 19

1.2.1开发工具Spket 21

1.2.2调试工具Firebug 23

1.2.3编译工具JSBuilder 23

1.2.4设计工具 24

第2章DOM操作 27

2.1基础概念 27

2.1.1 DOM是什么 27

2.1.2为什么要DOM 28

2.1.3 DOM怎么用 29

2.1.3.1访问HTML节点 (Retrieve) 29

2.1.3.2创建、删除(Create、Delete) 31

2.1.3.3修改标签属性和内容(Update) 33

2.1.4总结 36

2.2新石器时代的CRUD 37

2.2.1 Ext.Element 38

2.2.1.1 Ext.get() 39

2.2.1.2 Ext.getDom() 40

2.2.1.3 Ext.fly() 41

3.2.1.4操纵样式属性 42

2.2.2 Ext.DomHelper 46

2.2.2.1概述 46

2.2.2.2 append 47

2.2.2.3 insertHtml 48

2.2.2.4 overwrite 49

2.2.2.5 createTemplate 50

2.2.3 Ext.DomQuery 51

2.2.3.1概述 51

2.2.3.2元素选择器 52

2.2.3.3属性选择器 53

2.2.3.4伪类选择器 55

2.2.3.5 CSS值选择器 57

2.3源码解析:Ext的DOM封装 58

2.3.1 Ext.Element 59

2.3.1.1 DOM结构工具 59

2.3.1.2外观工具 66

2.3.2 Ext.DoMHelper 67

2.3.2.1设计思路概述 67

2.3.2.2源码详解 69

2.3.2.3 DomHelper与Ext.Element协作 73

2.3.3 Ext.DomQuery 74

2.3.3.1设计思路概述 74

2.3.3.2源码详解 75

2.3.3.3与Ext.Element的配合 79

本章总结 80

第3章 程序员的CSS 81

3.1必知的CSS基础概念 81

3.1.1历史渊源 81

3.1.2核心概念一:盒子模型 81

3.1.2.1盒子模型 81

3.1.2.2 padding规则 84

3.1.2.3 border规则 85

3.1.2.4 margin规则 86

3.1.3核心概念二:选择器 86

3.1.4浏览器兼容 87

3.2 Ext对CSS的封装 87

3.2.1静态切换主题 87

3.2.2动态切换主题 89

3.2.3结构化CSS 90

3.2.4 Ext UI组件的本质 91

第4章 精通Function 95

4.1 JS函数特性梳理 95

4.1.1参数可变长 96

4.1.2函数不能重载 97

4.1.3命名空间 97

4.1.4函数嵌套 100

4.1.5 call/apply/自执行 102

4.1.6函数也是数据 104

4.1.7 Function 105

4.1.8函数实例的属性 107

4.1.9构造函数 110

4.1.10模拟静态属性 111

4.1.11综合应用:定时器 112

4.2函数原型 116

4.2.1 prototype概述 116

4.2.2向prototype添加自定义属性 118

4.2.3原型查找机制 119

4.2.4遮盖 120

4.2.5原型赋值机制 121

4.2.6模拟静态属性 122

4.2.7犀利的prototype 123

4.2.7.1扩展Array 123

4.2.7.2扩展Number 126

4.2.7.3扩展String 127

4.2.7.4扩展Date 131

4.2.7.5扩展Error 134

4.2.7.6扩展Function 135

4.3作用域链[[scope]] 141

4.3.1作用域链[[scope]]简介 141

4.3.2标识符解析 144

4.3.3修改作用域链和this 146

4.4闭包 149

4.4.1从最简单的开始 149

4.4.2闭包构造三步走 150

4.4.3闭包用法:经典案例 151

4.4.3.1获取Table中被点击的行 151

4.4.3.2模拟多线程 152

4.4.3.3模拟私有属性 154

第5章EXt事件系统 156

5.1 DOM事件演化史 156

5.1.1没有事件的寂寞年代 156

5.1.2简单事件模型 157

5.1.3 2级事件模型 159

5.1.3.1多个监听函数 159

5.1.3.2浏览器兼容 161

5.1.3.3事件传播 163

5.1.3.4监听函数中的this 171

5.1.3.5事件对象 174

5.1.4高级语义事件 176

5.1.4.1设计自己的事件机制 176

5.1.4.2为原生的事件接口提供快捷方式 181

5.1.4.3双剑合璧 183

5.2熟练使用Ext的事件机制 187

5.2.1基础用法 187

5.2.1.1为底层元素注册监听器 187

5.2.1.2为Ext的UI组件注册事件 190

5.2.2批量注册监听器 191

5.2.3指定this 192

5.2.4单次运行的监听器 193

5.2.5挂起和恢复 195

5.2.6事件转发 196

5.2.7删除监听函数 197

5.2.8事件综合示例 198

5.2.9高级用法一:自定义事件 203

5.2.10高级用法二:为自定义的类提供事件支持 204

5.3 Ext事件系统全景解析 205

5.3.1封装底层事件 206

5.3.1.1 Ext.EventManager 206

5.3.1.2 Ext.EventObject 215

5.3.2高级事件机制Observable 217

5.3.2.1非可视组件 217

5.3.2.2可视组件 218

5.3.2.3详解Ext.util.Observable 220

5.4全景式解析API根对象Ext 229

5.4.1整体结构概述 230

5.4.2源码详解 231

5.4.2.1 Ext版本信息 231

5.4.2.2浏览器/OS类型判断 231

5.4.2.3垃圾收集配置 233

5.4.2.4继承机制的实现 235

5.4.2.5 id机制 235

5.4.2.6对象类型判定 236

5.4.2.7数组操纵工具 238

5.4.2.8对象引用获取工具 245

本章总结 249

第6章Ext中的Ajax和Direct 251

6.1 Ajax的前世今生 251

6.2 Ajax和Ext.Ajax 251

6.2.1 Ajax那点事儿 251

6.2.1.1创建XHR对象 254

6.2.1.2发送请求,接收数据 255

6.2.1.3 Ajax基础实例 256

6.2.2 Ext.Ajax用法和常见陷阱 258

6.2.2.1 Ext.Ajax基础用法 258

6.2.2.2缓存问题 259

6.2.2.3传输XML 260

6.2.2.4异步问题 261

6.2.2.5跨域问题 262

6.2.2.6 Ajax上传文件 265

6.2.3 Ext.Ajax源码解析 266

6.2.3.1屏蔽浏览器差异 266

6.2.3.2优雅地回调 267

6.3按需加载JS,梦想照进现实 268

6.3.1基础动态载入技巧 268

6.3.2使用Ext.Ajax动态加载JS 270

6.3.3使用jsloader动态加载 271

6.4 Direct 272

第7章EXt的数据和缓存架构 278

7.1 JS原生数据结构 278

7.1.1数组技法大演练 278

7.1.1.1 join 279

7.1.1.2 slice 280

7.1.1.3 splice 281

7.1.1.4 sort 282

7.1.1.5 Ext扩展:indexOf、remove 282

7.1.2 JS对象﹛﹜ 283

7.1.2.1天然Hash特性 283

7.1.2.2伪数组 284

7.1.2.3天然JSON结构 284

7.2 JSON 285

7.2.1使用Ext.util.JSON 285

7.2.1.1 encode/decode 285

7.2.1.2对象深拷贝 286

7.2.2源码分析 287

7.2.2.1 JSON.decode 287

7.2.2.2 JSON.encode 287

7.2.3服务端JSON工具介绍 289

7.2.3.1 json-lib 289

7.2.3.2 DAO直接生成JSON串 291

7.2.3.3 Gson 292

7.3 XML 294

7.3.1用JS解析XML 294

7.3.1.1直接使用XmIDocument加载XML文件 294

7.3.1.2使用Ajax加载XML数据 295

7.3.1.3自制XML解析器源码分析 297

7.3.2 Ext使用XML数据 301

7.3.2.1使用Ext.data.XmIStore 301

7.3.2.2 Ext.data.XmlStore的解析方式 303

7.3.3 JSON VS XML 304

7.4 MixedCollection 305

7.4.1概述 305

7.4.2玩转MixedCollection 306

7.4.2.1当做数组使用 306

7.4.2.2当做HashMap使用 307

7.4.2.3迭代 308

7.4.2.4查找和过滤 309

7.4.2.5排序 313

7.4.2.6 MixedCollection的事件 316

7.4.3 MixedCollection源码分析 316

7.4.3.1模拟HashMap 317

7.4.3.2迭代工具 318

7.4.3.3查找和过滤 320

7.4.3.4排序和中文支持 321

7.4.3.5事件支持 322

7.4.4综合考察MixedCollection 323

7.4.4.1代码实现层面 323

7.4.4.2设计层面 324

7.5 Store 324

7.5.1 Store系组件概述 324

7.5.1.1继承关系图 324

7.5.1.2协作关系图 327

7.5.1.3时序图 330

7.5.1.4 Store的本质 331

7.5.2数据记录Record 332

7.5.2.1手动创建Record 332

7.5.2.2 create方法源码解析 339

7.5.2.3拷贝记录 339

7.5.2.4获取记录中的字段 342

7.5.3 Store对Record的管理 347

7.5.3.1过滤记录——where 348

7.5.3.2 where机制的实现 354

7.5.3.3记录排序——order by 357

7.5.3.4 order by机制的实现 360

7.5.3.5从设计角度“品味”排序特性 363

7.5.3.6记录分组——group by 363

7.5.3.7 group by机制的实现 365

7.5.3.8提交和回滚——commit/rollback 367

7.5.3.9 commit/rollback机制的实现 370

7.5.3.10从设计层面“品味”Store的核心特性 373

7.5.4 DataProxy 374

7.5.4.1 DataProxy系组件概述 374

7.5.4.2用法实例 375

7.5.4.3源码解析 384

7.5.5 DataReader 386

7.5.5.1 DataReader系组件概述 386

7.5.5.2用法实例 387

7.5.5.3源码解析 401

7.5.6 DataWriter 402

7.5.7 Store系组件总结 405

7.6Tree 408

7.6.1 Tree的基本性质 410

7.6.1.1基本属性 410

7.6.1.2树和JSON 411

7.6.1.3递归遍历 411

7.6.2 Ext.TreeNode 414

7.6.2.1概述 414

7.6.2.2父类Node解析 414

7.6.2.3 TreeNode解析 415

7.7 Cookie 428

7.7.1 Cookie概述 428

7.7.2使用Ext的Cookie 430

7.7.3 Ext的Cookies机制 432

7.7.3.1顶级类Component 432

7.7.3.2 CookieProvider源码解析 434

第8章 面向对象和继承 435

8.1 JS模拟继承的方式 435

8.1.1原型继承 435

8.1.1.1子类prototype赋值为父类实例 437

8.1.1.2删除不需要的属性 439

8.1.1.3重置constructor 440

8.1.2对象冒充 442

8.1.2.1对象冒充基础原理 442

8.1.2.2静态属性 443

8.1.3综合运用 447

8.2易筋经:Ext.extend() 449

8.2.1使用Ext.extend 449

8.2.1.1招式一:子类不提供构造函数 449

8.2.1.2招式二:子类提供显式构造函数 451

8.2.1.3招式三:子类提供隐式构造函数 453

8.2.2深度解析Ext.extend的源码 454

8.2.2.1关键点1:私有属性 455

8.2.2.2关键点2:参数移位 456

8.2.2.3关键点3:空壳函数 457

8.2.2.4关键点4: prototype拷贝 458

8.2.2.5关于静态属性 460

8.2.3 Ext.extend本质:继承和接口相统一 460

8.2.3.1机制总结 460

8.2.3.2 Ext中的实例 461

8.2.3.3 Ext.extend再认识 463

第9章 精通Ext的UI组件 467

9.1简单组件 467

9.1.1 MessageBox 467

9.1.1.1熟练使用MessageBox 467

9.1.1.2源码解析 470

9.1.2 ProgressBar 474

9.1.2.1熟练使用进展条 474

9.1.2.2源码解析 477

9.1.3 Menu 478

9.1.4 ToolBar 480

9.1.4.1熟练使用ToolBar 480

9.1.4.2 ToolBar源码解析 485

9.1.5 LoadMask 485

9.1.5.1使用LoadMask 485

9.1.5.2 LoadMask源码分析 488

9.1.6 Tip 489

9.2 Panel系 491

9.2.1 Panel 491

9.2.1.1加载外部页面 491

9.2.1.2陷阱和注意点 494

9.2.2 Window 495

9.2.2.1 Window的重复创建问题 496

9.2.2.2使用WindowGroup管理Window 498

9.2.2.3 Window的其他配置项 499

9.2.3 TabPanel 500

9.3 Form系 503

9.3.1表单的加载和提交 503

9.3.2更改FieldLabel 508

9.3.3多列布局 510

9.3.4 VTypes表单校验 512

9.3.5 ComboBox 515

9.3.5.1使用本地数据 515

9.3.5.2使用远程数据 518

9.3.5.3 Combo分页 519

9.3.5.4二级联动 520

9.3.6 CheckBox/Radio Group 523

9.3.7 FielSet 524

9.3.8 DatePicker 525

9.3.9动态添加输入项 526

9.4 Grid系 529

9.4.1 GridPanel基本用法 530

9.4.2 SelectionModel&Row Numberer 532

9.4.3客户端分页 534

9.4.4服务端分页 536

9.4.5 renderer和RowAction 538

9.4.6动态操纵 Record 546

9.4.7数据格式化 553

9.4.8综合应用EditorGridPanel 555

9.4.9 GridPanel中的右键菜单 559

9.5Tree系 561

9.5.1装配“树形”JSON结构 561

9.5.2动态加载数据 566

9.5.3监听事件 569

9.5.4编辑节点数据 572

9.5.5节点拖曳 573

9.5.6节点过滤 575

9.5.7 ColunmTree 578

9.6 DataView系 580

9.7特殊组件 582

9.7.1文件上传 582

9.7.2网页编辑器 586

9.7.3调色板 588

第10章 详解UI组件核心机制 591

10.1 UI生命周期概述 591

10.2详解生命周期 593

10.2.1事件机制 593

10.2.2组件查找机制 595

10.2.2.1使用Ext.getCmp 595

10.2.2.2 ComponentMgr源码解析 597

10.2.3初始化机制 600

10.2.3.1拷贝配置属性 602

10.2.3.2生成id 603

10.2.3.3初始化initComponent 603

10.2.4插件机制 608

10.2.5渲染机制 608

10.2.5.1触发beforerender事件 610

10.2.5.2开始渲染onRender 611

10.2.5.3应用样式 615

10.2.5.4完成渲染afterRender 616

10.2.5.5持久化 617

10.2.5.6布局 618

10.2.6懒渲染机制 619

10.2.6.1直接创建 620

10.2.6.2使用xtype 620

10.2.7销毁机制 622

10.2.8总结 623

10.3 GridPanel核心机制 623

10.3.1概述 623

10.3.2详解GridView 624

10.3.2.1 GridPanel和GridView协作关系 624

10.3.2.2标签模板初始化 625

10.3.2.3 GridView对Store的监听 627

10.3.3数据模型 628

10.3.4选中模式 631

10.4 FormPanel核心机制 632

10.4.1概述 632

10.4.2 Field和VType 634

10.5 TreePanel核心机制 634

10.5.1 TreeLoader加载数据 635

10.5.2树的事件机制 637

第11章 布局管理器 639

11.1全面掌握Ext布局 639

11.1.1 AbsoluteLayout 640

11.1.2 AccordionLayout 641

11.1.3 AnchorLayout 642

11.1.4 AutoLayout 643

11.1.5 BorderLayout 644

11.1.6 CardLayout 645

11.1.7 ColumnLayout 646

11.1.8 FitLayout 647

11.1.9 FormLayout 648

11.1.10 HBoxLayout 649

11.1.11 MenuLayout 650

11.1.12 TableLayout 651

11.1.13 ToolbarLayout 651

11.1.14 VBoxLayout 652

11.2综合应用ViewPort 652

11.3布局核心源码详解 654

11.3.1布局管理器概述 654

11.3.2渲染完成后的布局操作 656

11.3.3 Container.doLayout 657

第12章 扩展UI组件 660

12.1概述 660

12.2常用扩展组件介绍 661

12.2.1下拉树ComboTree 661

12.2.2详解ComboTree的实现细节 666

12.2.2.1从Filed到ComboBox 666

12.2.2.2 Ext.form.Field 667

12.2.2.3 Ext.fonn.TextField 669

12.2.2.4 Ext.form.TriggerField 669

12.2.2.5 Ext.form.ComboBox 673

12.2.3日期选择器 675

12.2.4 Desktop和Portal 678

12.2.4.1 Desktop实例分析 678

12.2.4.2 Portal实例分析 680

12.5扩展组件的技巧 682

12.5.1是否真的需要继承 682

12.5.2扩展组件的经典步骤 682

12.5.3其他注意点 687

12.5.4如何在项目中使用UI组件 688

12.5.4.1设计界面原型 688

12.5.4.2切分组件 689

12.5.4.3代码实现 689

第13章 模板 693

13.1概述 693

13.2 Ext模板用法 697

13.2.1基本拳脚功夫:基础用法 697

13.2.1.1 Ext.Template的基础用法 697

13.2.1.2 Ext.XTempate的基础用法 701

13.2.2青出于蓝:实现“值班日志” 705

13.2.3组合拳:与其他组件配合使用 709

13.2.3.1一个自定义的留言板 709

13.2.3.2与DataView配合使用 711

13.3模板源码解析 714

13.3.1自己实现Template 715

13.3.1.1概要设计 715

13.3.1.2详细设计 715

13.3.1.3编码实现 716

13.3.1.4单元测试 716

13.3.1.5说明文档 717

13.3.1.6重构,增加“预编译”功能 717

13.3.2自己实现XTemplate 718

13.3.2.1实现if标签 718

13.3.2.2实现for标签 724

13.3.3 Ext模板源码解析 727

13.3.3.1 Ext.Template 728

13.3.3.2 Ext.XTemplate 729

第14章 特效 730

14.1使用Ext动画 730

14.1.1调整大小 730

14.1.2淡入和淡出 732

14.1.3其他特效 733

14.2使用拖拽 733

14.2.1拖拽的基本原理 733

14.2.2基本Ext拖拽 734

14.2.3目标区域 735

14.2.4 Grid和Form之间的拖拽 737

第15章 图表 741

15.1使用Ext的Chart 741

15.1.1解决本地运行问题 741

15.1.2用法实例 742

15.1.2.1前台本地数据 742

15.1.2.2动态加载远程数据 743

15.1.3其他类型的Chart 746

15.2 Ext的Chart源码分析 746

15.2.1 swfobject与Flash 746

15.2.2 Ext.FlashComponenet 747

15.2.2.1 Chart系组件概述 747

15.2.2.2如何把swf渲染到页面中 749

15.2.3 Flash技术前景展望 749

15.3其他Chart技术概览 750

15.3.1 SVG 750

15.3.1.1 SVG技术简介 750

15.3.1.2基本用法示例 750

15.3.1.3 SVG总结 754

15.3.2 VML 754

15.3.2.1 VML技术简介 754

15.3.2.2实例代码 755

15.3.2.3学习资源 756

第16章 报表 757

16.1客户端报表ActiveXObject 757

16.1.1导出基本HTML页面数据 757

16.1.2 GridPanel导出到Excel 762

16.2后台报表Excel、 PDF 763

16.2.1使用jxl生成Excel 764

16.2.2使用Itext生成PDF/Word 766

第17章Ext 4新特性 769

17.1 SVG图表和动画 769

17.2新的类结构和加载机制 771

17.2.1类结构优化 771

17.2.2继承方式升级 771

17.2.3 Mixin机制 772

17.2.4自动生成getter&setter 772

17.2.5动态加载类 773

17.3新的数据模型 774

17.3.1 Model和Store 774

17.3.2代理Proxy 775

17.3.3关联关系 776

17.3.4加载嵌套数据 776

17.4新的主题引擎 777