一.Ajax作用?优点?缺点?何时使用?
- 作用: 发送异步请求 ; 实现页面的局部刷新
- 优点:---(异步请求,局部刷新页面,用户体验好)
1.Web应用的多任务(异步提交而非同步提交)
2.无需刷新页面向服务器传输或读写数据,提升Web程序的性能
3.即时显示,不间断的交互流程,用户体验极佳
4.接近桌面应用的直接、高可用、更丰富、更动态的Web用户界面
- 缺点:
1.前进、后退的功能被破坏(因为Ajax永远在当前页,不会记录前后页面);
2.搜索引擎的支持度不够(因为搜索引擎爬虫还不能理解JS引起变化数据的内容);
3.开发调试工具缺乏(相对于其他语言的工具集来说,JS或Ajax调试开发少的可怜)。
- 使用ajax应用:
1、验证用户名等数据的唯一性
2、下拉列表的联动
3、异步登录
页面使用html+ajax+json 实现动态数据的显示 如显示列表等功能
二.Ajax处理流程
1、创建异步请求对象
2、指定回调函数
回调函数:页面发送ajax到控制器处理后如果处理成功执行回调函数
3、与控制器建立连接
4、发送请求
5、执行回调函数
回调函数中首先判断readyState是否为4,status是否为200,如果都成立
再获取服务器响应数据(responseText) --显示在页面中
三.你的项目中哪些功能使用了Ajax实现?
1、验证用户名等数据的唯一性
2、下拉列表的联动
3、异步登录
四.jquery如何实现Ajax操作
- 底层封装方法:$.ajax()
$.ajax({
url:"路径",
type:"请求方式 get或post",
data:{"参数名":值,"参数名":值}, //发送到后台的数据 参数名=值&参数名=值
dataType:"text", //服务器返回的数据类型 text json
success:function(r,state,xmlHttpRequest){ //执行成功后 回调函数 参数获取到服务器回传的数据
三个参数 1回传数据 2状态码 3异步请求对象
参数名自定义 顺序固定 个数根据需求定
}
});
- 第二层封装方法:.load()、$.get()和$.post()
$.get() 发送异步的get请求 和$.post() 发送异步的post请求 参数
注意:不用像ajax函数设置key了 直接传递参数即可
参数1:url (必须传递的参数)
2:数据
3:成功回调函数
4:回传数据的类型(一般不设置 自适应)
$.get("/springmvcTest2/selectByuidByAjax.do",{"userid":uid},function(res){
if(res=="error"){
$("span#userIdInfo").html("用户名不可用");
return false;
}else{
$("span#userIdInfo").html("用户名可用");
return true;
}
});
- 第三层封装方法:$.getScript()和$.getJSON()
$.getScript() 加载读取js文件
参数设置要加载的js文件的路径
$.getJSON() 加载读取json文件
参数1 json文件的路径 参数2 函数 通过参数获取json文件中的json串
$.getJSON("news.json",function(res){
$.each(res,function(index,flt){
alert(index+" "+flt.fid+flt.titleName);
});
});
五.Ajax的核心对象?
- XMLHttpRequest 异步请求对象
是ajax技术中核心对象
- XMLHttpRequest对象的常用属性和方法
1、onreadystatechange属性
设置回调函数
2、open方法
参数1 提交方式(一定大写) GET POST
参数2 url
如果传递参数 可以url?参数名=值
参数3 采用异步请求 true
xmlRequest.open("GET","hello",true);
3、send方法
参数 --如果post提交方式 可以在这个参数中实现传值
xmlRequest.send(null);
4、responseText属性--获取从服务器回传的数据
一般回传的格式 text、html、xml、json(text 、json用的多)
xmlRequest.responseText
5、readyState 0--4
4--XMLHttpRequest对象读取响应结束
6、status
200--服务器响应正常
六.回调函数判断2个码 都是什么
判断readyState是否为4,status是否为200,如果都成立
再获取服务器响应数据(responseText)