分享
 
 
 

AJAX企业级开发

AJAX企业级开发  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机/网络,程序设计,Java Java Script J2EE,

作者: (加)David Johnson,Alexei White,Andre Charland 著,张祖良,荣浩,高冰 译

出 版 社: 人民邮电出版社

出版时间: 2008-10-1字数: 443000版次: 1页数: 287印刷时间: 2008/10/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115186065包装: 平装编辑推荐

第一部AJAX企业级开发力作,大量来之不易的专家建议和最佳实践,带你达到全新的高度。

“本书中,三位高手和盘托出大量来之不易的专家建议和最佳实践,将使你大开眼界,充满信心地投入企业级AJAX发。”

——Brenl Ashley Java Script 远程脚本库JSRS之父。AJAX技术先驱

“我实在不知道还有谁比本书的作者更适合写关于AJAX企业级开发的书。对于全世界从事下一代应用的开发者来说,本书弥足珍贵。”

——Man McKenzie Adobe公目软件开发经理

Web 2.0、云计算的大潮正在打破消费软件和企业级软件之间的界限。AJAX也从最初仅仅用于典型的web用,开始进入CRM、ERP、BI等等企业级软件开发的世界。并4步月现其威女。在企Ⅱ级环境中应月AJAx绝非易事,更加困难的是,相关的技术资料非常缺乏。

本书及时弥补了这一空白。作者是业界著名的专家,早在AJAX一词发明之前就已经使用这些技术多年,经验极为丰富。与市面上大量同类图书只讲基础知识不同,书中讨论了大规模AJAX企业级应用从设计到测试、部署全过程面临的最迫切解决的问题,包括构架、安全性、可用性、可访问性、可靠性、可扩展性和项目风险。设计模式思想贯穿全书。不论你是在移植旧的Web应用,还是从零开始构建,本书都将使你达到全新的高度。

本书的作者自来自著名的企业级用户体验组件自解决方案公司Nltobl。Nitobi是OpenAjax联盟的活跃成员,具有丰富的企业级web开发经验,多年来,为时代华纳、美国国家航空航天局、思科、宝马、宜家、朗讯、西门子等跨国公司和大型机构提供企业级解决方案.其中不乏关键任务和要求严苛的应用。

Dave Johnson NItob公目的CT0和创始人之一。也是业界知名的Web技术专家,长期从事高性能AJAX组件的架构和构建。

Alexei White Nltobl公司组件工具产品经理,是公司多个重要产日的主要架构师。

Andre Charland Nltobl公目创始人一,目前担任总裁和CEO,身经百战的web技术专家,成功领导过100多十开发项目。

第一部AJAX企业级开发力作;大量来之不易的专家建议和最佳实践;阐释企业应用的开发者经常遇到,但却很少能得到及时解决的问题;提供的准确信息和建议让你有信心在专业的业务应用中使用专业的Ajax技术;作者是著名Ajax技术公司Nitobi的创始人,该公司为OpenAjax联盟活跃成员。

内容简介

本书首先解释了AJAX 为什么在大规模的开发中能有如此广阔的应用前景,接着系统地介绍了当前重要的AJAX 技术和组件。你将看到把数据表、Web 窗体、图表、搜索和过滤连接在一起用于构建AJAX 应用程序的框架开发的整个过程;在此基础上,本书给出了已经过证实的AJAX 架构模式,以及来源于实际的.NET 和Java AJAX 应用程序的案例研究。

本书适用于任何平台上的Web 开发和设计人员。

目录

第1章AJAX和RIA

1.1变化中的Web

1.1.1传统Web应用之痛

1.1.2AJAX止痛药

1.2企业中的AJAX

1.3采用AJAX的驱动因素

1.3.1可用性

1.3.2网络利用率

1.3.3以数据为中心

1.3.4渐增的技巧、工具和技术升级

1.3.5服务器中立

1.4关于应用

1.4.1AJAX技术

1.4.2编程模式

1.5AJAX的替换技术

1.5.1XUL

1.5.2XAML

1.5.3Java Applet和Web Start

1.5.4Adobe Flash、Flex和Apollo

1.5.5OpenLaszlo

1.6小结

1.7资源

第2章AJAX构建块

2.1JavaScript

2.1.1JavaScript类型

2.1.2闭包

2.1.3面向对象的JavaScript

2.1.4prototype属性

2.1.5面向对象编程和继承

2.1.6易变性

2.1.7线程

2.1.8错误处理

2.1.9命名空间

2.2DOM

2.2.1基本原理

2.2.2操作DOM

2.3CSS

2.3.1继承和层叠

2.3.2内联样式

2.3.3样式表

2.3.4动态样式

2.4事件

2.4.1事件流

2.4.2事件绑定

2.4.3跨浏览器事件

2.4.4事件对象

2.5客户端/服务器通信

2.5.1XMLHttpRequest基础知识

2.5.2处理数据

2.6小结

2.7资源

第3章Web浏览器中的AJAX

3.1基于组件的AJAX

3.1.1渐增的AJAX

3.1.2对服务器的影响

3.2HTML标准

3.2.1文档类型定义

3.2.2盒子模型

3.3启动加载AJAX组件

3.3.1onload事件

3.3.2浏览器编码技巧

3.4模型-视图-控制器

3.4.1视图

3.4.2控制器

3.4.3模型

3.5AJAX MVC

3.5.1AJAX模型

3.5.2AJAX视图

3.5.3AJAX控制器

3.5.4面向方面的JavaScript

3.6小结

3.7资源

第4章AJAX组件

4.1命令式组件

4.2声明式组件

4.2.1服务器端声明式编程

4.2.2声明式Google地图

4.2.3替代方法

4.3自定义声明式组件

4.3.1行为式组件

4.3.2声明式组件

4.3.3关于声明

4.4构建组件

4.4.1基本功能

4.4.2连接到服务器

4.4.3最终版本

4.5小结

4.6资源

第5章从设计到部署

5.1设计

5.1.1AJAX建模

5.1.2应用模型-视图-控制器模式

5.1.3预先考虑性能问题

5.2原型设计

5.2.1线框绘制

5.2.2验证设计决议

5.3测试

5.3.1测试驱动开发

5.3.2调试

5.4部署

5.4.1JavaScript压缩

5.4.2图片合并

5.4.3保护知识产权

5.4.4文档

5.5小结

5.6资源

第6章AJAX架构

6.1多层架构:从单层到多层

6.2异步消息

6.3轮询

6.4服务器推送

6.5跟踪请求

6.6缓存:处理数据

6.7基本缓存

6.8在组件中缓存

6.9在浏览器中缓存

6.10在服务器中缓存

6.11在数据库中缓存

6.11.1MySQL

6.11.2MS SQL Server

6.11.3Oracle

6.12更新服务器模型:并发

6.12.1悲观锁定

6.12.2只读锁定

6.12.3乐观锁定

6.12.4冲突鉴定

6.12.5冲突解决

6.12.6自动的冲突解决

6.13流量控制

6.13.1客户端

6.13.2服务器

6.14可伸缩性

6.14.1负载平衡和群集

6.14.2AJAX可伸缩性问题

6.15离线AJAX

6.16FireFox离线存储

6.17IE userData离线存储

6.18使用Flash客户端存储

6.19离线AJAX和并发

6.20小结

6.21资源

6.21.1REST和Web服务

6.21.2缓存

6.21.3数据库性能

6.21.4离线AJAX

第7章Web Service和安全性

7.1Web Service

7.2Web Service协议

7.2.1表象状态传输

7.2.2XML远程过程调用

7.2.3Web Service

7.2.4选择合适的工具

7.3客户端的SOAP

7.3.1IBM Web Service JavaScript库

7.3.2Firefox

7.3.3IE

7.4跨域Web Service

7.4.1服务器代理

7.4.2URL片段标识符

7.4.3Flash跨域XML

7.4.4脚本注入

7.5安全性

7.6AJAX的安全性考虑

7.7跨域漏洞

7.7.1跨站脚本

7.7.2跨站请求伪造

7.7.3JavaScript劫持

7.8SQL注入

7.8.1预处理语句

7.8.2存储过程

7.8.3XPath注入

7.9数据加密和隐私

7.10防火墙

7.11小结

7.12资源

第8章AJAX可用性

8.1 常见问题

8.1.1 后退按钮和书签

8.1.2 页面大小

8.1.3 自动提交

8.2 可访问性

8.2.1 识别用户的可访问性需求

8.2.2 JavaScript和Web可访问性

8.2.3 屏幕阅读器和可访问性

8.2.4 不该为屏幕阅读器提供的解决方案

8.2.5 兼容JAWS的AJAX交互

8.2.6 键盘可访问性

8.3 可用性测试

8.4 迅速而又随性的测试

8.4.1 征募参与者

8.4.2 设计并运行测试

8.5 软件辅助测试

8.5.1 用于测试可用性的工具

8.5.2 对软件辅助测试的一般忠告

8.6 小结

8.7 资源

8.7.1 后退按钮

8.7.2 可用性测试

第9章用户界面模式

9.1 显示模式

9.2 交互模式

9.3 小结

9.4 资源

9.4.1 拖曳资源

9.4.2 进度栏资源

9.4.3 活动指示器资源

9.4.4 颜色淡出资源

9.4.5 即时编辑资源

9.4.6 向下钻取资源

9.4.7 即时搜索资源

9.4.8 即时表单资源

第10章风险和最佳实践

10.1风险来源

10.1.1技术风险

10.1.2文化/政策风险

10.1.3市场风险

10.2技术风险

10.2.1范围

10.2.2浏览器能力

10.2.3可维护性

10.2.4向前兼容

10.2.5第三方工具支持和代码过时

10.3文化和政策风险

10.3.1终端用户的期待

10.3.2可培训性

10.3.3合法性

10.4市场风险

10.4.1搜索引擎的可访问性

10.4.2范围

10.4.3货币化

10.5风险评估和最佳实践

10.5.1采用特定的AJAX框架或者组件

10.5.2渐进增强和不唐突的JavaScript

10.5.3Google网站地图

10.5.4可视化提示

10.5.5避免镀金式设计

10.5.6制定维护计划

10.5.7采用一种收益模型

10.5.8把培训作为应用的一部分

10.6小结

10.7资源

10.7.1搜索引擎优化

10.7.2统计

10.7.3网站地图

10.7.4屏幕截取工具

第11章案例研究

11.1基于Web 2.0重新武装美国国防部

11.1.1背景

11.1.2挑战

11.1.3解决方案

11.1.4采用技术

11.1.5成果

11.2Agrium公司将AJAX技术整合到实际运作中

11.2.1背景

11.2.2挑战

11.2.3解决方案

11.2.4采用的技术

11.2.5成果

11.3AJAX助力国际运输与物流公司

11.3.1背景

11.3.2挑战

11.3.3解决方案

11.3.4采用的技术

11.3.5成果

11.4小结

11.5资源

附录AOPENAJAX HUB

书摘插图

第1章AJAX和RIA

1.1 变化中的Web

在20世纪90年代末期,微软首次在IE 5中引入了XIMLHttpRequest(XHR)对象,这个对象是AJAX功能所需的核心技术的一部分。同时,微软引进了0utlookWebAccess(OwA),OWA是一个让人印象相当深刻的AJAX界面,而且在技术上远远超出它所处的时代。当时的主要缺点是无法在其他浏览器中使用XHR对象,并且对于锁定微软的又一个工具或者平台,社区存在强烈的抵触情绪。通过XHR在主流开发中直到现在才被缓慢采用,可以证实这一事实。

伴随着在Firefox和Safari对XHR远程脚本的最终引入,以跨浏览器的方式构建富异步通信才成为了可能。这也暗示着xHR能够被部署到更多不同用户的机器上,而不会引入太多风险。当XHR、JavaScript、DHTML和CSS结合时,创建富客户端应用且没有Web应用所特有的令人厌烦的刷新才成为了一种可能。与稍后介绍的其他很多富客户端技术不同,AJAX基于各种浏览器和操作系统都支持的开发标准,事实上消除了对厂商锁定的担忧,而且提高了可移植性。

在传统应用中,一切都是围绕Web页面是作为静态视图出现在应用中的这一做法的,而应用又是完全基于web服务器的。用户唯一可能的交互是向Web表单输入数据或者是单击一个链接,这两种操作都导致了整个页面的刷新,而不管它是在CRM应用中更新一条完整的客户记录,还是在查看和编辑用户记录之间进行状态切换。在某些方面,传统的Web应用存在很多改进的空间——例如,当输入大量的数据时。同时,在很多情形下,传统的Web应用的确表现出色,例如搜索引擎或者文档储存库,长期以来都是传统Web应用成功的典范。此外,传统的web能力,例如HTTP协议和资源缓存,对于基于AJAX的应用而言也非常有用。

不同于流行的AJAx地图和Email应用,大多数的企业级Web应用围绕数据录入、数据编辑或者数据报表构建。最常见的数据录入应用包括一个数据列表,例如CRM应用中的客户记录或者销售信息,数据条目能够添加、删除或者编辑。下面让我们分析这样的一个情况,在传统Web应用和基于AJAX的Web应用中,当一位出色的销售人员被要求使用一个慢得让人痛苦的新在线CRM工具在销售过程中跟踪会议记录、客户联系信息和销售进展信息时,用户的交互是如何进行的。

1.1.1传统Web应用之痛

当推销员登录到应用时,他将面对一个包含了10个潜在客户记录列表的Web页面。对于大多数的传统Web应用,这类功能是通过使用静态的HTML标签列出每条数据记录来实现的,列表附近是链接到编辑或者删除页面的按钮。销售人员现在想要基于一些新的信息更新记录。首要任务是找到需要更新的记录。如果在前10条记录中找不到,他将不得不进行搜索,通过翻页到下10条记录,在数据列表中导航查找,而且需要等待页面的刷新。找到这条记录后,用户单击编辑按钮。通过单击向服务器发送了一个请求。然后,一个包括许多表单字段的页面被发送给Web浏览器。大多数的表单字段是文本字段,其中有一些提供了复选框、下拉列表或者简单的数据校验(例如,检查本地电话号码确保其是7位数字)。在数据编辑表单中,除了传统的Tab和Shift+Tab功能键之外,不存在其他的键盘快捷键方式可在编辑字段中移动。在数据编辑完成之后,用户单击位于页面底部的保存按钮,把数据提交到服务器,从而服务器能够验证数据的正确性并且把数据提交到数据库。另外一个页面被发送回浏览器以确认保存操作。如果数据发生错误,用户在页面表单得到一个可视化的提示,这个页面需要被发送回浏览器,用户进行适当的编辑,然后再次单击提交按钮。如果每天执行很多类似的相同操作,这将是一种相当低效且乏味的过程。

我们宁可希望使用数据列表的Web页面作为编辑页面,这样每条记录都能够立刻被编辑,也不希望使用单独的表单编辑数据。在完成所有的修改后,我们能够同时将这些数据提交到服务器,然后进行保存。从可用性来说,这是很多传统Web应用所使用的用户界面类型,而并非使用上文所描述的单独的数据编辑方案。当用户保存数据时,所有的数据必须一次性保存,而不是在用户输入或者更新时增量地保存。这种方案意味着所有的数据必须被一次性大批量地发送到服务器,这将导致以下几个可能的结果:

并发或者校验问题迫使所有的数据以一种杂乱并且难以理解的方式重新显示,提示用户一次性修复数据的多个问题。

对于终端用户,没有任何的辅助手段重新提交数据时,断断续续的网络连接问题或者服务器错误可能会导致数据被破坏甚至是完全丢失。

用户认证失败,所有的改动将全部丢失。

无论结果如何,当服务器持久化数据到数据库并且重定向到新的Web页面时,通常会导致长时间重新刷新,从而导致终端用户极大的挫折感和痛苦。图1-1的时序图中展示了用户和系统之间的交互。尤其需要注意的是,用户闲坐在计算机前等待服务器响应的部分。(这个时间通常用来玩个人纸牌游戏。

HTML表单对于某些类型数据确实有用,尤其是对于新手用户,或者没有频繁数据操作的界面。不过,对于那些必须进行快速导航和编辑的大量复杂的数据,则相当痛苦。如果用户需要从电子表格或者邮件中复制数据到应用,往往意味着重新录入或者复制并粘贴单独的数据片段。可用性专家有时把这种情况称为“转椅集成”(swivel chair integration),当然并不需要可用性专家来指出,这是一种低效的工作方式,一种糟糕的用户体验。

1.1.2AJAX止痛药

与传统的Web表单处理大数据量的数据录入应用的方法不同,高效的应用需要具备响应性和直观性。总而言之,系统对于用户的工作流程的影响应该最小化。例如,用户需要在数以千计的预期的客户记录中上下滚动,犹如从本地计算机中访问数据,而不是每次翻页查看10条记录。同时,当数据被保存到服务器时,他们还需要继续输入数据到应用中。用户的使用习惯和与系统的交互方式必须尽可能地贴近桌面应用,从而减少用户把思维方式从桌面切换到Web上时所花费的时间。用于快速数据录入的理想界面需要类似于电子表格,但是每一列都要绑定到数据库表中特定的字段。尽管与传统的应用类似,同样使用简单的HTML标签列出数据,但是当用户点击界面的任意数据时,该记录应该迅速变为可编辑状态,当用户按下回车键时,这些数据应该被保存到服务器,这种情况类似于大多数的电子表应用。如果在保存数据的过程中,由于数据库并发问题产生错误,当错误发生时,显示哪些数据出现错误的信息应该动态地显示在用户界面上。同样,在数据编辑完成并且按下回车键后,焦点应该自动地移动到下一条记录,而且这条记录在用户按下键盘上的任意键时立刻变为可编辑状态,正如我们所期望的桌面电子表格所能完成的一样。如图1.2所示,我们可以看到通过使用AJAX技术,用户不必再闲坐在计算机之前等待服务器的响应。相反,在保存操作的响应返回到浏览器之前,用户能够继续编辑数据。

基于AJAX技术的用户交互的关键在于,这项技术的核心是将少量的数据片段(而不是所呈现的HTMLWeb页面)发送到服务器以及从服务器读取,而不是发送由服务器完全装配的巨大的_Web页面。这就是用户不需要等到数据保存之后才能发送请求到服务器,从而就能够继续编辑数据的原因。即使在这种情况下,由于在后台通过使用AJAX功能只把编辑过的数据异步发送到了在这个应用范例中,其他的热键同样可以工作,例如Ctrl+N创建一条新的记录,Ctrl+v从其他文本文档或者电子表格中直接粘贴到这个w曲应用中(如图1.3所示)。此外,为了用户能够获取关于数据库中用户名和邮件地址是否可用的实时反馈,我们可以使用服务器端数据验证,从而进一步减少页面刷新的次数。

AJAX架构可用性的另一个优势是保护用户免受来自本身和网络的影响。花费了大量的时间填写一个很长HTML几表单,却仅仅因为失去了网络连接而无法将操作或录入的数据提交到服务器或者数据库,将是相当令人沮丧的。基于AJAX技术,我们通常能够把数据异步地发送回服务器。这项技术同时允许我们能够在任何时刻保持服务器端和客户端数据同步。尽管,我们不希望每次按键都不必要地提交对数据库的改动,但我们可以把数据推送到服务器,甚至是保存在本地,从而避免于网络停用或者客户端系统问题而丢失数据。

……

AJAX企业级开发

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有