ajax示例.docx

上传人:b****2 文档编号:2198250 上传时间:2022-10-27 格式:DOCX 页数:9 大小:18.01KB
下载 相关 举报
ajax示例.docx_第1页
第1页 / 共9页
ajax示例.docx_第2页
第2页 / 共9页
ajax示例.docx_第3页
第3页 / 共9页
ajax示例.docx_第4页
第4页 / 共9页
ajax示例.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

ajax示例.docx

《ajax示例.docx》由会员分享,可在线阅读,更多相关《ajax示例.docx(9页珍藏版)》请在冰豆网上搜索。

ajax示例.docx

ajax示例

基础

●概述

Ajax是一种异步(不用阻止当前线程)的程序,

主要作用是在页面无刷新的情况下让页面与服务器进行交流。

Ajax并非是一个新的技术,而是在原有的技术上进行了一次综合运用。

需要使用到的技术有:

Javascript:

创建方法,与页面中不同的节点绑定,

当节点操作的时候调用javascript方法,javascript方法就会在方法内部向服务器发送请求,获得结果后对再对网页进行操作。

Servlet:

用于接收到请求处理之后返回给javascript中的方法。

⏹xmlhttprequest

这个类是基于动态语言javascript而且定义的动态类。

他的方法可以在javascript中随时绑定新的方法去运行,

他也有固定的一些属性,用于大众化的处理规范。

◆方法

/**

*functionopen(method,url,async,username,password)

*@param{String}method告诉用户使用哪种方法提交请求,有:

post,get

*@param{String}url用户提交的地址,servlet。

*@param{Boolean}optionalasync是否异步,默认是true,如果设置为false那么程序会拦截线程直到ajax处理完成。

*@param{String}optionalusername可有可无

*@param{String}optionalpassword可有可无

*@memberOfXMLHttpRequest

*/

XMLHttpRequest.prototype.open=function(method,url,async,username,password){};

 

/**

*functionsend(body)//当ajax的代码都进行绑定之后,再对绑定的路劲进行发送请求。

*@param{Object}body

*@memberOfXMLHttpRequest

*/

在调用该方法之前的操作都是绑定参数和方法的操作。

XMLHttpRequest.prototype.send=function(body){};

 

/**用于绑定处理方法,当send之后,对接收到的状态或者熟悉进行处理,

*functiononreadystatechange

*@memberOfXMLHttpRequest

*/

XMLHttpRequest.prototype.onreadystatechange=function(){};

 

◆属性

Status:

/**

*页面的状态。

用于open之后查找到对应的地址是否存在

*propertystatus

404代表找不到页面,或者服务器。

200成功

500服务端代码错误。

*@typeNumber

*@memberOfXMLHttpRequest

*/

XMLHttpRequest.prototype.status=0;

/**

*propertyresponseText从服务端返回的响应文本。

*@typeString

*@memberOfXMLHttpRequest

*/

XMLHttpRequest.prototype.responseText="";

/**

*propertyreadyState当前的读入状态,0代表未读,2已经连接,3正在读入,4读入完成。

*@typeNumber

*@memberOfXMLHttpRequest

*/

XMLHttpRequest.prototype.readyState=0;

 

⏹运行流程(重要)

1.在javascript中的方法绑定到XMLHTTPrequast()。

2.绑定好响应的发送参数:

open(”get“,url,true);

3.绑定好响应的处理函数,

4.发送请求到servlet。

5.当servlet返回是调用响应的处理函数。

●使用示例

⏹Jsp:

varxhr;

functionfvalidate(){

//XMLHttpRequest

//1、创建ajax引擎

xhr=newXMLHttpRequest();

//2、提交什么请求

varurl="searchServlet?

uname="+document.getElementById("tname").value+"&ts="+newDate();

xhr.open("get",url);//这个时候尚未发送请求。

只是绑定参数。

//3、指明当有结果返回时,如何接受或处理(绑定处理函数)

xhr.onreadystatechange=fcallback;

//4、提交请求

xhr.send();

}

//回调函数,用于处理返回的结果

functionfcallback(){

if(xhr.readyState==4){//内容全部接收完成

if(xhr.status==200){

varvdiv="";

vararr=xhr.responseText.split("-");

for(vari=0;i

vdiv+="

"+arr[i]+"
";

}

document.getElementById("showMessage").innerHTML=vdiv;

}

}

}

uname:


100px;border:

1pxsolidred">

pwd:



⏹Servlet:

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

Stringname=request.getParameter("uname");

//调用业务,根据对应的名称加载对应的数据,装数据

//保存到字符串中,中间用-隔开

StringBuildersb=newStringBuilder();

sb.append("zs").append("-").append("ls").append("-").append("wb").append("-");

//得到写入响应文本的流。

PrintWriterpw=response.getWriter();

//将数据写入响应文本。

pw.write(sb.toString());

//关闭流。

pw.close();

}

Ajax的IE兼容问题

在ajax中不同的ie生成内核的方法也不同。

代码如下:

//1、创建ajax引擎

if(window.ActiveXObject){//ie内核状态下

xhr=newActiveXObject();

}elseif(window.XMLHttpRequest){//非ie内核下

xhr=newXMLHttpRequest();

}

 

Jquery和Ajax

●使用jquery去调用ajax程序

⏹页面

functioncheck2(){

varname="asd!

!

!

";

//参数格式$.post(URL,{DATE:

date},function回调函数);

//回调函数只会在数据状态200的时候执行:

date是回调的结果。

//这个方法用$.get();一样格式。

$.post("ajaxDemo.action",{"name":

name,"dd":

"demo"},function(date){

alert(date);

});

}

type="submit"/>

⏹Struts2配置

--随意一个返回结果都可。

-->

nio.jsp

⏹Action类

publicclassAjaxDemoActionimplementsAction{

publicStringexecute()throwsException{

//设置返回的字符编码

ServletActionContext.getResponse().setCharacterEncoding("utf-8");

//获取参数

Stringname=ServletActionContext.getRequest().getParameter("name");

System.out.println("进来了。

");

System.out.println(name);

//获得返回页面的流

PrintWriterpw=ServletActionContext.getResponse().getWriter();

pw.write("你好");

pw.flush();

pw.close();

returnnull;

}

}

●Load延迟加载服务器内容

⏹页面

functioncheck2(){

varname="asd!

!

!

";

//参数格式$.post(URL,{DATE:

date},function回调函数);

//回调函数只会在数据状态200的时候执行:

date是回调的结果。

//这个方法用$.get();一样格式。

$.post("ajaxDemo.action",{

"name":

name,

"dd":

"demo"

},function(date){

alert(date);

});

}

//load方法,直接加载进元素内容。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1