ajax技术自诞生以来,就受到了众多人的推崇,随之产生了很多框架,大有“为我独尊之势”。个人感觉ajax只是丰富了web应用,ajax在使用上很简单,下面给出一个例子,可以满足大多数的应用。
var ajaxReq = false;//声明ajax请求对象
function ajaxInit()
{
if(window.XMLHttpRequest) { //Mozilla 浏览器
ajaxReq = new XMLHttpRequest();
if (ajaxReq.overrideMimeType) {//设置MiME 类别
ajaxReq.overrideMimeType("text/xml");
}
}else if (window.ActiveXObject) { // IE 浏览器
try {
ajaxReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("请使用IE5.5以上版本的浏览器");
return false;
}
}
}
if (!ajaxReq) { // 异常,创建对象实例失败
alert("请使用IE5.5以上版本的浏览器");
return false;
}
return true;
}
//通用函数:servletUrl指servlet映射url,func动作指令,para参数组合(例如“para1;para2;....”)
function ajaxGet(servletUrl,func,para)
{
if(!ajaxReq && !ajaxInit()) return false ;
url=servletUrl+"?func="+func+''¶="+para;//func是动作指令,para是传入的参数,可以传入多个
ajaxReq.open("POST", url, false);
ajaxReq.send(null);
var dt = new Date();
var start = dt.getTime();
while(ajaxReq.readyState != 4 ){
dt = new Date();
iv = dt.getTime() - start;
if(iv>900000){
alert("提交请求超时,请稍后再试");
return false;
}
}
if (ajaxReq.status == 200) { // 信息已经成功返回,开始处理信息
var resText = ajaxReq.responseText;//得到servlet返回的处理信息
//alert(resText);
if (0 == resText.indexOf("AJAX:") ) //AJAX:是预先设置的信息,标识信息是从对应的servlet返回的信息
return resText.substring(5);
alert("应答字符串非法");
return false;
} else { //页面不正常
alert("无法获取信息,请稍后再试");
return false;
}
}
下面给出一个简单的jsp页面,页面使用了ajax
function updatecusinfo(){
var value=“para1;para2;para3..........”
var b=ajaxSimpleGet("../cpmng/DrscpmngServlet", "funcname", value);
alert(b);//b是返回的处理信息
}
<html>
<body>
<table><tr><td width=15%><input type="button" value="调用ajax更新信息" οnclick="javascript:updatecusinfo()"></td></tr></table>
</body></html>