一.Ajax 概述
Ajax 全称为:“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML), 它并不是 JavaScript 的一种单一技术,而是利用了一系列交互式网页应用相关的技术所形 成的结合体。使用 Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了用户体验。jQuery 对 Ajax 做了大量的封装,我们使用起来也较为方便,不需要去考虑浏览器兼容 性。
二.load()方法
.load()方法可以参数三个参数:url(必须,请求 html 文件的 url 地址,参数类型为 String)、 data(可选,发送的 key/value 数据,参数类型为 Object)、callback(可选,成功或失败的回调 函数,参数类型为函数 Function)。
//HTML <inputtype="button"value="异步获取数据"/> <div id="box"></div> //jQuery $('input').click(function(){ $('#box').load('test.html'); //添加到box里 }); //如果想对载入的 HTML 进行筛选,那么只要在 url 参数后面跟着一个选择器即可。 $('input').click(function(){ $('#box').load('test.html.my'); });
二.post()和get()方法
如果是服务器文件,比如.php。一般不仅需要载入数据,还需要向服务器提交数据,那 么我们就可以使用第二个可选参数 data。向服务器提交数据有两种方式:get 和 post。
在 Ajax 数据载入完毕之后,就能执行回调函数 callback,也就是第三个参数。回调函数 也可以传递三个可选参数:response(请求返回)、Status(请求状态)、xhr (XMLHttpRequest 对象)。
//jQuery post/get方法 $('input').click(function(){ $.post('a.php',{ //第一个参数url(get方法,把post改成get) url:'baidu' //第二个参数date },function(response,status,xhr){ //第三个参数回调函数 alert('返回的值为:'+response+ //结果为哈哈哈 ',状态为:'+status + //结果为success ',状态是:'+xhr.statusText); //结果为OK }); }) //php接收 post/get 方法 if($_POST['url']=='baidu'){ //POST改成GET echo'哈哈哈'; } else{ echo'错误'; } //get方法,改掉对应的地方
注意:status 得到的值,如果成功返回数据则为:success,否则为:error。
如果成功返回数据,那么 xhr 对象的 statusText 属性则返回’OK’字符串。除了’OK’的状态 字符串,statusText 属性还提供了一系列其他的值,如下:
第三个回调函数,一般来说只传递response一个参数就可以。
三.getScript() 和 getJSON()
有时我们希望能够特定的情况再加载 JS 文件,而不是一开始把所有 JS 文件都加载了。这时使用$.getScript()方法。
//点击按钮后再加载 JS 文件 $('input').click(function(){ $.getScript('test.js'); });
$.getJSON()方法是专门用于加载 JSON 文件的,使用方法和之前的类似。
$('input').click(function({ $.getJSON('test.json',function(response,status, xhr){ alert(response[0].url); }); });
四. ajax() 方法
$.ajax()是所有 ajax 方法中最底层的方法,所有其他方法都是基于ajax()方法的封装。 这个方法只有一个参数,传递一个各个功能键值对的对象。
$('input').click(function(){ $.ajax({ type:'POST', //这里可以换成 GET url:'a.php', data:{ url:'baidu' }, success:function(response,stutas,xhr){ $('#box').html(response); } }); });
五.表单序列化
使用表单序列化方法.serialize(),会智能的获取指定表单内的所有元素。这样,在面对 大量表单元素时,会把表单元素内容序列化为字符串,然后再使用 Ajax 请求。
//html <form> 用户名:<input type="text" name='user'/> 密码: <input type="text" name='password' /> <input type="button" value="提交" /> </form> <div id="box"></div> //jquey $('form input[type=button]').click(function (){ $.ajax({ type:'POST', url:'a.php', data:$('form').serialize(), success:function(response,status,xhr){ $('#box').html(response); } }); }); //PHP echo $_POST['user'].'-'.$_POST['password'];
学习不容易,总结出来又是九点了。