Ajax学习---1(初步了解)

  1. AJAX —->
    • 浏览器发出JavaScript请求,通过ajax引擎转为HttpRequest,发给服务器请求数据库,
    • 服务器返回文本信息给ajax引擎,解析为html和css等传给浏览器
    • 特点: 页面无刷新,异步,服务器返回需要的数据,
    • 同步: 按照时间顺序,线性,用户发出请求,经过t秒,服务器返回信息,用户在发出请求,经过s秒,服务器返回信息,在这个过程中需要等待,如果时间比较长,用户体验不好
    • 异步: 体验不会中断
  2. 和传统区别?
不同点常规操作AJA操作
是否刷新刷新不刷新页面
用户操作中断,等待新页面下载后继续不中断
性能服务器返回整个新页面(包括HTML,CSS,相关图片)服务器仅返回需要的数据
编码复杂度较简单较复杂
同步异步

3. ajax引擎?(eg:送快递,快递员相当于引擎,)

应该做什么?不该做什么?
能够被JavaScript调用,引擎不会处理用户的请求,
需要指定请求地址,请求方式,参数,不会处理业务逻辑
可以从“引擎”中得到服务器返回的数据只是将请求转发给服务器
可以异步请求服务器并接受返回的数据,javascript本身并不能访问网络,有引擎实现当服务器返回数据后,引擎不会代替javasc完成页面显示工作,有javasc完成后续的处理
引擎也要可以调用javascript,

4. ajax引擎就是javascript中的对象(XMLHttpRequest)
5. IE实现:

if(window.ActiveXObject){
 var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
}
  1. 非IE实现:
var xmlHttp = new XMLHttpRequest();
  1. 兼容模式:
var xmlHttp;
 function createXMLHttpRequest(){
 if(window.ActiveXObject){
 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} else {
 xmlHttp = new XMLHttpRequest(); 
}
 }
  1. 发出请求:
xmlHttp.open(请求方式,请求地址,【是否异步请求】)
xmlHttp.send()
  1. GET请求
//转码:get请求url中有中文 new String(name.getBytes("ISO8859-1"),"UTF-8")
xmlHttp.open('GET',"/ajax?username=xuyy",true)
xmlHttp.send()
  1. POST请求
//转码:表单提交(POST)含有中文,request.setCharacterEncoding("UTF-8")
xmlHttp.open('POST',"/ajax",true);.//设置请求内容
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send("username"+username+"&password=123456")//发出请求
  1. 接收服务器响应
function sendAjax(){
 createXMLHttpRequest(); 
xmlHttp.open("GET","ajax.do?name="+name,true);
//设置form表单请求默认值(请求头)
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.onreadystatechange = callback;//设置回调函数
 xmlHttp.send(); 
}
//回调函数
 function callback(){
 alert("callback");  
}
//转码:get请求url中有中文 new String(name.getBytes("ISO8859-1"),"UTF-8")
  1. 获取服务器状态码:
var code = xmlHttp.readyState;
1.已经初始化
2.发送请求数据
3.相应数据传输中 
4.相应完毕
  1. 获取HTTP状态码;
var serverCode = xmlHttp.status;
  1. ajax 返回值:字符串而已,在response中的所有东西变成一个字符串
    这里写图片描述
  2. 回调函数
xmlHttp.onreadystatechange = function(){
var state =  xmlHtpp.readyState;
if(state == 4){
var httpStaus= xmlHttp.status;
if(httpStaus== 200){
//...................
xmlHttp。responseText
}else{
sout("服务器错误 ")
}
}
}
  1. 流程
    这里写图片描述
  2. 给客户端响应也要设置编码
response.setCharacterEncoding(“UTF-8”)
response。setContentType(“text/plain;charset=UTF-8”);//设置客户端响应头

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值