Ajax

ajax技术

在学习ajax技术前,先来弄明白两个概念,同步交互与异步交互

  • 同步:提交请求->等待服务器处理->处理完毕返回给客户端 在此期间客户端浏览器不能干任何事,只能等待

  • 异步: 请求通过JS事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理完毕

普通的B/S交互模式就是同步交互,这样给用户的体验不好,比如我注册时填写完表单发给服务器,服务器端验证我的用户名已经被别人使用了,然后返回给我一个新的注册页面,什么都要从头填写…
AJAX就是一种异步交互技术

1 什么是Ajax

Ajax:一种不用刷新整个页面便可与服务器通讯的办法.它是Asynchronous JavaScript and XML的缩写。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.

2 Ajax技术组成

AJAX:(Asynchronous JavaScript and XML)并不是一项新技术,其实是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XMLHttpRequest.
1)使用 XML传递数据,XML (eXtensible Markup Language,可扩展标记语言) 是一种描述数据的格式。AJAX 程序需要某种格式在服务器和客户端之间传递数据,XML 是其中的一种选择
2) 使用XHTML+CSS实现基于web标准的数据展示;
3) 使用DOM(Document Object Model)实现动态显示和交互;
5) 使用XMLHttpRequest对象进行异步数据读取
6) 使用JavaScript绑定和处理所有数据
使用Ajax技术的好处:
通过异步交互模式, 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用,最终提升了用户体验

3 jQuery实现ajax异步交互

直接用原生js写ajax异步交互的代码比较繁琐,开发中建议用jQuery包装的方法去实现ajax异步交互。

3.1 jQuery ajax方法
 $.ajax({
    url:'user.action',  //要请求的服务器资源地址
    type:'POST', //提交方式,GET或POST
async:true,    //或false,是否异步,默认是true
 //向服务器发送的参数,可写成json格式{key:value},也可写成"key= 
// value&key2=valu2..."    
   data: {"name":"zhangsan","age":20 },
    timeout:5000,    //超时时间
    dataType:’text',    //返回的数据格式:json/xml/html/script/jsonp/text
    //服务器处理成功时调用的函数,data是服务器响应回来的数据
    success:function(data){
        console.log(data);
},
//服务器处理失败时调用的函数
    error:function(xhr,textStatus){
        console.log('错误');
        console.log(xhr);
        console.log(textStatus);
}//服务器处理完成时调用的函数,不管成功或失败都会调用
complete : function(xhr, text) {
					console.log("处理完成");
					console.log(xhr);
					console.log(text);
		}
});
3.2 jQuery post方法

$.post() 方法通过 HTTP POST 请求从服务器上请求数据。
语法:
$.post(URL,data,callback);
必需的 URL 参数指定请求的资源路径
可选的 data 参数规定向服务器发送的参数数据。
可选的 callback 参数是请求成功后所执行的函数。

 $.post("ajaxTest.action",
    //请求参数
     {
        name:"中国武汉",
        url:"http://www.whsxt.com"
    },
        function(data,status){
        alert("数据: \n" + data + "\n状态: " + status);
    });
3.3 jQuery get方法

. g e t ( ) 方 法 与 上 面 的 .get()方法与上面的 .get().post()类似,它发送的请求是get请求
下面的例子使用 $.get() 方法从服务器上的一个文件中获取数据:

$("#btn").click(function(){
  $.get("demo_test.txt",function(data,status){
    alert("数据: " + data + "\n状态: " + status);
   });
});
3.4 综合案例

实现注册时验证用户名唯一性,如果输入的用户名已存在,在页面上给出提示“用户名已存在,请更换!”。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值