注册 登录
编程论坛 jQuery论坛

ajax 使用心得

无情剑客 发布于 2007-12-20 10:41, 1784 次点击
ajax 使用心得

2005年2月,ajax在Jesse James Garrett的介绍下与大家见面了,并且马上在业界走红。我接触ajax的时间不是很长,在没认识他之前,总认为那是多么高级的应用啊!总认为他有多么的高深多么的难!当了解了他之后觉得,他没有想像中的那么难以琢磨!
传统的交互是整个页面的刷新,交互中有大量的冗余数据。那样占用了大量的带宽,降低了浏览器响应速度。而ajax的出现正好解决了这个难题的,其实ajax是众多技术“组装”出来的,其核心的就是javascript了,提到javascript 我想大家都是比较熟悉的:他是一种基于对象和事件驱动并具有安全性能的脚本语言,他原本是用来使网页变的生动的!现在在ajax技术担当了重要的角色----------与后台通信。XMLHttpRequest对象在技术中起到了主要的作用!
if(window.XMLHttpRequest) {
        this.req = new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        try {
            this.req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                this.req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e1) {
               //
            }
        }
    }
上段代码就是创建一个XMLHttpRequest对象,由于浏览器的厂商不同对XMLHttpRequest对象的实现也不同!有了XMLHttpRequest对象就可以向后台异步发送请求而不惊动用户界面。可以通过他的send方法向后台发送一个xml ,通过open方法打开后台链接。XMLHttpRequest对象还有个重要的事件onreadystatechange ,他可以监听后台的反应,readyState属性可以标识响应情况:0 = 未初始化,1 = 正在加载2 = 加载完毕,
3 = 交互,4 = 完成 ,当readyState属性状态为4时就说明响应已经完成了,但是相应完成并不代表一定成功了 还有个status属性标识响应的状态, HTTP响应信息状态码有很多在这里我之列举几种常见的,在ajax应用中以下几种状态码是要处理的:
200    =  一切OK。
403  =  由于服务器上文件或目录的权限设置导致资源不可用
404    =  没有找到指定的资源
500    =  一般为你的后台程序抛出异常了。
当返回的状态码为200时就说明 一次请求已经成功的响应了,你就可以通过DOM对 responseText进行解析了,这样一次异步调用就完成了。
有必要时要设置RequestHeader,比如请求类型(content-type) 缓存( Cache-Control )特别是字符编码格式,有时会遇到返回的是一串乱码,那就要统一字符编码格式。
这样说起来 ajax也就那么回事,当然这个只是最原始最基本的,了解了他的核心你使用起ajax框架来也就顺畅多了,现在有很多出色的ajax的框架,比如Dojo ,Google AJAXSLT , ,Java BluePrints …… 这些框架各有各的特点,大多数都只支持某一种语言。开发者开发java web程序就要去寻找支持java的框架 要开发.net程序就的去寻找支持net程序的框架。这样很不方便。其实webshop就是个不错的开发ajax程序的工具,有了他你就不用在为找合适的框架而烦恼了,他支持java net php vb等流行开发语言,并且还支持可视化操作,Webshop的ADL库对ajax做了很好的封装,操作后台就像调用前台方法一样简单。

知道了ajax原理,又有这么好用的现成的开发工具,现在ajax开发不再难了吧?还不快去下载webshop体验一下吧!
1 回复
#2
无情剑客2008-01-07 17:38
AJAX分布应用框架
AJAX分布应用框架
(JoyiStar AJAX Remote Object Access Framework)
JoyiStar的AJAX分布应用框架称为AJAX Remote Object Access Framework(简称AROA),AROA同时支持PHP、Java、C#、VB等各种语言的开发,并且使用的方法是类似的,AJAX Remote Object Access Framework的原理图如下:
框架图.JPG" border="0" />
    JoyiStar的AROA体系实现了AJAX上分布式对象和数据的透明访问,在这个体系下,AROA提供的DataSet及与它配合的数据感知控件、XmlDataSet提供了AJAX数据库应用开发最优的解决方案和快捷性,同时DataSet解决了数据分页、增量数据变化提交、主从表(一对多)等一系列数据库应用核心问题, Web上所有的数据库交互都可以通过DataSet来处理并完成与后台的通信,这非常类似多层体系开发中的客户端数据集。
另外AROA的Client Object Stub不久也将发布,通过AJAX Remote Object Access Framework,能够实现类似WebService及CORBA这样的远程分布式对象访问,同时它与DataSet一样,具有与后台开发语言的无关性,能够同时支持PHP、Java、.NET的开发。

[[italic] 本帖最后由 无情剑客 于 2008-1-7 17:40 编辑 [/italic]]
1