`

十:使用Ajax改进用户体验

阅读更多
十:使用Ajax改进用户体验

asynchronous :异步的
synchronous :同步的
focus :焦点
direct :直接
remote :远程
initial :初始化


目标
10.1:Web 2.0
10.1.1:互联网前世今生
10.1.2:Web2.0的特点
10.2:Ajax
10.2.1:为什么使用Ajax
10.2.2:什么是Ajax
10.2.2:怎样使用Ajax
10.3:Ajax框架
小结:


目标

10.1:Web 2.0
10.1.1:互联网前世今生
黑暗年代:数据和信息不通过电子途径传播和共享的年代。
静态网页时代:互联网提供静态网页给人们浏览。
动态网页时代:动态网页技术的发展史人们可以在互联网上发布信息,数据库技术的发展使互联网开始指导人们的事务。
Web 2.0时代:更佳的用户体验和更高的参与程度(如果说互联网的出现是一次革命,那Web2.0的登场时另外一次革命)。
10.1.2:Web2.0的特点
1),用户贡献内容;2),内容聚合:RSS;3),更丰富的“用户体验”,新的交互方式。(RSS是将信息规范化的一个标准,最主要的应用在Blog[部落格]中)
用户体验的七个目标:有价值,实用,好用,悦人,可信,易寻找,可获取。用户体验:使用软件(或浏览网站)是,很容易地找到想要找的东西,轻松完成想完成的事,视觉效果很舒服,用完后心情好。
应用:Web2.0站点普遍使用了Ajax等技术,出现了Tag等很多新的交互方式,让用户使用软件的过程连贯,方便,自然。举例:Google页面输入框的自动补全功能;可以在自己页面中添加Tab页和“小窗口”通过RSS聚合内容;小窗口可以关闭,最下化和进行个性化设置......
10.2:Ajax
10.2.1:为什么使用Ajax
Ajax技术:通过JavaScript发送请求到服务器,并得到返回结果而只是刷新局部页面(做到“无刷新”)。
无刷新技术:只刷新页面的一小部分,而不用整个页面都刷新。优点:1,避免重复加载,浪费网络资源;2,提供连续的用户体验,不被页面刷新中断。例如:Chinaren首页上的登录功能,tudou网上单击其他按钮并不影响视屏的连续播放,Google地图提供的拖动,放大,缩小等类似桌面程序的用户体验.....
10.2.2:什么是Ajax
Ajax——Asynchronous(异步的),JavaScript And Xml.Ajax只是整合了几种现有的技术:JavaScript,XML和CSS。
解释:主要是JavaScript:通过Javascript的XMLHttpRequest对象完成发送请求道服务器并获得返回结果的任务,然后使用Javascript更新局部的网页。
异步指的是:Javascript发送请求后并不是一直等着服务器的响应,而是发送请求后继续做别的事,请求响应是异步完成的。
XML一般用于请求数据和响应数据的封装,CSS用于美化页面样式。
10.2.2:怎样使用Ajax
编写Ajax代码前先开发好服务器端程序。然后,使用Javascript的XMLHttpRequest发送请求得到结果。
创建XMLHttpRequest对象实例的代码:
function createXmlHttpRequest(){
if(window.ActiveXObject){//如果是IE浏览器
return new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){//非IE浏览器
return new XMLHttpRequest();
}
}
使用XmlHttpRequest对象分四个步骤:
代码:
var xmlHttpRequest;
function checkUserExists(OCt1){
var uname=oCt1.value;
if(!uname){//??
alert("用户名不能为空");
oCt1.focus();
return ;
}
//发送请求道服务器,判断用户名是否存在
//请求字符串
var url="?operate=doCheckUserExists&uname="+uname;
//1,创建XMLHttpRequest组件
xmlHttpRequest=createXmlHttpRequest();
//2,设置回调函数
xmlHttpRequest.onreadystatechange=haolejiaowo;
//3,初始化XMLHttpRequest组件
xmlHttpRequest.open("GET","url",true);
//4,发送请求
xmlHttpRequest.send(null);
}

function haolejiaowo(){
if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){
var b=xmlHttpRequest.responseText;
if(b=="true"){
alert("用户名已存在");
}else{
alert("用户名可以使用");
}
}
}
//
//
解释:
第2句代码:onreadystatechange是xmlHttpRequest对象的一个事件,haolejiaowo是一个JavaScript方法名。含义:在xmlHttpRequest对象的状态发生改变时调用haolejiaowo这个函数。
第3句代码:xmlHttpRequest对象的open方法用于初始化xmlHttpRequest对象,参数(请求发送的方式,请求的url,请求同异步否);true表示是异步的(在调用send方法发送请求后不用等请求响应继续执行后面的代码)。
每次xmlHttpRequest对象状态改变都会调用这个方法。
xmlHttpRequest对象有5种状态:0,未初始化;1,已初始化;2,发送请求;3,开始接受结果;4,接受结果完毕。故而,我们只处理状态readyState为4的情况。
xmlHttpRequest.status表示服务器响应的状态码:200,正常;404,not found(没找到资源);500,服务器出错。
只处理正常响应的情况,即xmlHttpRequest.status为200的情况。当xmlHttpRequest的readyState为4和status为200同时满足时,就可以从xmlHttpRequest.responseText中得到服务器响应的字符串了。
10.3:Ajax框架
Ajax框架简化编码,若使用DWR框架(http://getahead.org/dwr)需要先将Jar包导入项目,在web.xml中配置,并在/WEB-INF/下创建dwr.xml配置文件。
在web.xml中的配置:
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
这样,不用在UserAction中添加方法,DWR可以将普通的类发布成Javascript可以调用的脚本对象。(直接创建UserManager类,提供check方法,用于检查用户名是否已存在)
配置dwr.xml:
主要是配置<create>节点,<create>节点有两个属性,creator属性设为new,表示通过new创建对象示例;javascript属性表示页面引用时的脚本对象名;子节点<param>,定义要发布的类别,name属性设为class,value属性设为要发布的类别名;子节点<include>定义暴露的方法。
<dw>
<allow>
<create creator="new" javascript="JUserChecker">
<param name="class" value="com.aptech.jb.biz.UserManager"/>
<include method="check"/>
</create>
</allow>
</dw>
启动服务器,浏览http://localhost:8080/zf10/dwr/,可以看到通过DWR发布的类的列表,单击链接可以打开对应的实例页面,查看并查看实例代码,
<script src='dwr/interface/JUserCheck.js'></script>
<script src='dwr/engine.js'></script>
<script src='dwr/util.js'></script>
function checkUserExists(oCt1){
var name=oCt1.value;
//发送请求到服务器,判断用户名是否存在
JUserchecker.check(uname,haolejiaowo);
}
function haolejiaowo(isExist){
......//同未用DWR框架时代码相同
}
解释:导入定义了JUserChecker脚本对象的dwr/interface/JUserChecker.js和dwr/engine.js,导入包括一些工具方法的dwr/util.js.
通过JUserChecker直接调用check方法,参数(对应原方法的参数,处理响应数据的的函数的函数名),而对于要调用的函数需要的参数,DWR会将Java类check方法执行的返回值传给它。

小结:
通过Ajax技术可以通过JavaScript发送请求到服务器,只需要更新局部页面而不需要刷新整个页面。
Ajax并不是全新技术,而是整合了Javascript,XML和CSS新的应用方式。
Ajax技术的核心组件是XMLHttpRequest,可以向服务器发送异步请求并获得响应文本。
使用DWR框架可以简化Ajax开发,通过在dwr.xml配置可以暴露Java类给JavaScript脚本。
通过http://appserver:8080/app/dwr/可以浏览并查看已经通过DWR发布的Java类列表以及页面实例代码。参考这些代码对编写我们自己的程序很有帮助。
分享到:
评论

相关推荐

    JpetStore用AJAX改进用户体验

    AJAX开发。在JSP/Servlet实现的JPetStore项目基础上,在表单验证、表单输入、订单更新等环节增加AJAX技术,改善项目的用户体验。以下三个任务为必须完成部分,还可自行添加其他改进用户体验的功能。

    Ajax 改造,第 1 部分: 使用 Ajax 和 jQuery 改进现有站点

    Ajax 的一些新特性能够解决实际中的界面问题并改善用户体验。本文将展示如何使用简单的模式窗口消除弹出窗口和导航死角。通过应用渐进增强(progressive enhancement)这一理念,能够保证这些增强的 UI 特性不会损害...

    Ajax改造,第2部分:使用jQuery、Ajax、工具提示和lightbox改进现有站点

    Ajax的一些新特性能够解决实际中的界面问题并改善用户体验。通过本系列文章,您可以了解如何使用开源客户端库让您的用户界面变得更为时尚。本文将展示如何使用简单的lightbox和工具提示技术消除弹出窗口和导航死角。...

    Ajax 改造第 1 部分使用 Ajax 和 jQuery 改进现有站点

    使用模式对话框改善您的用户体验并简化导航

    【卷一/共两卷】AJAX实战pdf高清版90M

    2.4.5 捷径:使用innerHTML属性 2.5 使用XML技术异步加载数据 2.5.1 IFrame 2.5.2 XMLDocument和XMLHttpRequest对象 2 5.3 向服务器发送请求 2.5.4 使用回调函数监视请求 2.5.5 完整的生命周期 2.6 Ajax有何不同 2.7...

    在应用程序中使用Ajax的时机

    了解如何使用Ajax改进Web站点,同时避免糟糕的用户体验。邂逅Ajax当使用AsynchronousJavaScript+XML(Ajax)开发技术增强的应用程序第一次出现在网上时,Web开发人员肃然起敬。一夜之间,Web站点和Web应用程序的潜在...

    Ajax改造,第3部分:用jQuery、Ajax选项卡和照片carousel改进现有的站点

    新特性应该能够解决现实的界面问题并改进用户体验,以此证明它们的价值。本系列讲解如何用开放源码的客户端库逐步改进用户界面。在本期中,学习如何使用DHTML和Ajax把缓慢、混乱、烦人的产品细节页面改造成快速优雅...

    ASP.NET AJAX无刷新数据— ASP.NET AJAX无刷新数据

    使用ASP.net的Ajax功能,可方便快捷的创建响应能力快的网页,并提供丰富的用户体验效果。Ajax的实现其实来自客户端脚本库。这下库将据阿月浏览器的...通过使用Ajax功能可以改进用户体验并提高web应用程序的效率。

    大名鼎鼎的IBM公司 Ajax 培训资料

     解析 HTML 和 XML:使用 JavaScript 代码操纵 DOM(请参阅 下一节),处理 HTML 表 单服务器返回的 XML 数据的结构。 对于前两点,需要非常熟悉 getElementById() 方法,如 清单 2 所示。 清单 2. 用 ...

    AJAX风格的Web开发

    高配置的Web应用程序,如Google Maps和A9以及微软的Virtual Earth和Start.com,通常能够利用这些技术的组合来形成丰富的客户端用户体验。组成AJAX的单项技术并不是最新的开发工具——它们已经运用了一段时间,并且...

    表单的验证

    通过本文了解增加 Ajax 代码改进 PHP 应用程序用户体验的各种技术。  谈到 Web 2.0 应用程序,首先想到的就是那些最杰出的应用:YouTube 的视频、 üGoogle Maps 可滚动的地图以及 Flikr 的地理定位功能。但是...

    图文解析AJAX的原理

    如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差。  3.服务端返回Response后,浏览器需要加载整个页面,对浏览器的负担也是很大的。  4.浏览器提交表单后,发送的数据量大,造成网络的性能...

    第三代移动WEB内核小程序风口-逐浪CMS2 x3.9.3全面发布

    ■扩展:使用新版本Jquery.js(升级到全新的v3.2.1) ■修复:节点链接Bug ■修复:单页--只允许首页生成 ■修复:扩展--运行SQL语句增加二次密码校验 ■扩展:Logo设计,下载图片时会自动添加水印 ■修复:因为特殊字符...

    web服装进销存2012改进版

    多店单店均适用,是web页面形式的进销存,常用的基本功能都有. ...部分入单页面改为AJAX,用户体验更加好 更改了菜单 如果有问题可以联系我.QQ:814369120 压缩包里面的是源码,有兴趣的可以下载用来做二次开发.

    asp订餐系统

    使用流行AJAX技术加强用户使用体验设计,更加加快系统速度和提高稳定性。 3.系统能自动记录用户订餐信息,简化订餐流程,极具人性化。 4.后台订单表现形式详细,可按送餐时间和地址打印订单,符合实际情况。 5.智能...

    周欣的演讲材料

    目前,周欣专注于改进本地用户使用网络服务时的用户体验。周欣在 Web 应用开发领域,特别是 AJAX、GWT、Gadgets API、JavaScript 等方面有较为深厚的积累。在加入 Google 前,周欣在攻读硕士学位期间主要从事计算机...

Global site tag (gtag.js) - Google Analytics