[关闭]
@Dreamingboy 2017-09-11T00:35:31.000000Z 字数 2817 阅读 808

6 Ajax

jQuery


6.5.1 load()方法

1、载入HTML文档
能够远程载入HTML代码并且插入DOM中,语法:

  1. load( url[,data][,callback]);

参数:

参数名 类型 解释
URL string 请求HTML页面的URL地址
data(可选) Object 发送服务器请求的key/value数据
callback(可选) function 请求完成时的回调函数,无论请求成功或者是失败
  1. (function(){
  2. $("#button").bind("click",function(){
  3. $("#text").load("example.html");
  4. })
  5. })();

上面这个方法会将获取到的内容直接插入到ID为text的元素中。load方法相当远将常规的Ajax请求和数据的插入封装到一个方法里面,使得这个过程更加简单。

2、筛选在载入的HTML
直接在URL后面加上筛选要筛选的内容的选择器就可以实现内容的筛选,获取到的内容包括所有的符合过滤器条件的内容。
基本语法:URL selector
selector支持元素符号、类名和ID名

  1. (function(){
  2. $("#button").bind("click",function(){
  3. $("#text").load("example.html h3");
  4. })
  5. })();

3、传递方式
如果load没有传入data参数,那么默认是使用get方法发送请求,如果传入了参数,那么就会使用post向服务器发送请求

4、回调函数

callback函数有三个参数:

在load方法中,无论请求是否成功,只要请求完成后,就会调用回调函数

6.5.2 $.get()$.post()

$.get()和$.post()都是jQuery的全局函数

1、$.get()
使用get方式来发送异步请求,语法:

  1. $.get(url[,data][,callback][,type]);

参数解释如下:

参数 类型 解释
URL string 请求的HTML页的URL地址
data(可选) object 发送至服务器的key/value数据会作为QueryString附加到请求URL中
callback function 载入成功时回调函数(只有当Response的返回状态时success才调用该函数)自动将请求结果和状态传递给该方法
type String 服务器返回的内容发格式,包括XML、HTML、script、JSON、text和_default

data是通过get方法返回的数据,也就是文件的内容
callback的格式为:function(data,textStatus){ do something}

  1. <form>
  2. <p>评论:</p>
  3. <p>姓名:<input type="text" name="text" id="name"></p>
  4. <p>内容:<textarea name="content" id="content" rows="2" cols="20"></textarea></p>
  5. <p><input type="button" name="button" id="button"></p>
  6. </form>
  7. <div><p>已有评论:</p></div>
  8. <div id="command"></div>
  9. //
  10. <script type="text/javascript">
  11. (function () {
  12. $("#button").click(function(){
  13. $.get("command.txt",{
  14. username:$("#name").val(),
  15. content:$("#content").val()
  16. },function(data,textStatus){
  17. if(textStatus == "success"){
  18. console.log(data);
  19. $("#command").html(data);
  20. } else{
  21. console.log("fail");
  22. }
  23. });
  24. });
  25. })();
  26. </script>
  27. //返回结果
  28. 这是一篇测试文章

2、$.post()
post方法和get方法的一些区别:

6.5.3 $.getScript()和$.getJson()

1、$.getScript()
语法:$.getScript(url,callback);
直接加载js文件,同时执行js文件,回调函数在js文件成功载入后运行
例如,可以在触发某个事件之后加载并且执行某个js文件

  1. $(function(){
  2. $("#id").click(function(){
  3. $.getScript("example.js");
  4. });
  5. });

2、$.getJson()
用法和getScript()方法一样,允许传入回调函数来执行某些操作。

6.5.4 $.ajax()

语法:$.ajax(options)

6.6 序列化元素

1、serialize()方法
将DOM元素的内容序列化为URL字符串,用于Ajax请求。

  1. $("form").serialize();
  2. //
  3. text=zhengpq&content=zhengpq

2、serializeArray()
将DOM元素序列化后返回JSON合适的数据

  1. $("form").serializeArray();
  2. //
  3. {{name: "text", value: "zhengpq"},{name: "text", value: "zhengpq"}}

3、param()
对一个数组或者是对象按照key/value进行序列化

6.7 Ajax全局函数

方法名称 说明
ajaxStart(callback) Ajax请求开始时触发
ajaxStop(callback) Ajax请求结束时触发
ajaxComplete(callback) Ajax请求完成时执行的函数
ajaxError(callback) Ajax请求发生错误时执行,捕捉到的错误可以作为最后一个采参数传递
ajaxSend(callback) Ajax请求发送前执行的函数
ajaxSuccess(callback) Ajax请求成功时执行的函数
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注