Username: Password:

关于快速简便的使用AJAX技术操作的介绍
来源:赛迪网 作者:赛迪网 发布时间:2008-04-17 00:00:00

其实AJAX并不复杂,自从AJAX技术出来后,天花乱坠的框架纷纷出台,搞得技术研发人员无从下手,baidu google里也有很多例子,大都是很复杂。

其实就web研发而言,AJAX技术只是个配合,完全没有必要本末倒置,是一种页面优化的技术,也就是说,怎样去优化我们的web页面才是AJAX的重头戏。下面我举个很简单的例子,能够满足大部分的业务需求。(当然,假如是很专业的页面需要,能够去参考那些复杂的框架)

第一步:

写一个后台的“接口”,这个能够用任何语言来实现,只要能返回http报文就能够了,我这里以webwork后台代码举个例子

public String hotWeek() throws Exception{

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("text/xml; charset=gb2312");

PrintWriter out = response.getWriter();

StringBuffer insertHotHtml = new StringBuffer();

insertHotHtml.append("

 
");

out.print(insertHotHtml.toString()); //返回一个有表格的HTTP报文

return null;

}

不用java的朋友根本不用管这些,只要记住,能返回一个HTTP报文,比如一个静态网页也能够。

第二步 :

在页面里加入下面这段javascript代码

var xmlHttp;

function createXMLHttpRequest(){

if (window.ActiveXObject){

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

else if (window.XMLHttpRequest){

xmlHttp = new XMLHttpRequest();

}

}

function startAjaxRequest(method,async,actionUrl,data, invokeMethod){

createXMLHttpRequest();

xmlHttp.open(method, actionUrl, async);

xmlHttp.onreadystatechange = handleStateChange;

xmlHttp.send(data);

function handleStateChange(){

if(xmlHttp.readyState == 4){

if(xmlHttp.status == 200){

var nodeId = xmlHttp.responseText;

if (nodeId==’noPermission’){

alert(’您没有权限访问此操作!’);

}else if( (falseIndex = nodeId.indexOf("false||"))!= -1 ){

alert(’操作失败,可能的原因为:’ + nodeId.substring(

falseIndex+7, nodeId.length) + "!");

}else if(nodeId==’false’){

alert(’操作失败,请和管理员联系!’);

}else ...{

if (invokeMethod == undefined){

getResult(nodeId);

} else {

invokeMethod(nodeId);

}

}

}

}

}

}

我们要用的就是startAjaxRequest(method,async,actionUrl,data, invokeMethod) 这个方法,具体实现,也不能够不用理会,对于IE和firefox都能够兼容,method 要么是GET,要么是POST,async我们一般都配置为true就能够了,data用来传数据给后台,invokeMethod是指后台返回数据后,前台自动调用什么方法,假如为空,那么就默认调用 invokeMethod(nodeId)这个方法。

$(document).ready(function(){

var actionUrl = "./provider!hotWeek.action";

$(’body’).html("页面加载中...");

startAjaxRequest("GET",true,actionUrl,’’);

});

这里我是用jQuery的,一个很好用的javascript框架。

"./provider!hotWeek.action" 就是我们获取HTTP报文的地址,大家完万能够用 比如 myTable.asp myTable.php只要返回的HTTP报文是符合XML规则的HTML语言就能够了。

第三步:

后台返回后的处理方法

function getResult(nodeId){

$(’body’).html(nodeId);

}

总结起来,其实只要 startAjaxRequest("GET",true,actionUrl,’’) 这么一个方法就能够去满足大部分AJAX的业务需求了,根本没有必要弄得那么复杂。

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅