Jquery中的ajaxSetup()和全局事件

来源:互联网 发布:免费算命软件大全 编辑:程序博客网 时间:2024/06/06 01:07

     本篇文章我们继续介绍jquery中关于ajax的一些函数,上篇文章,我们讲到了Serialize()SerializeArray()


这种序列化后的数据是标准格式,几乎可以被所有的服务器端支持。JSON格式的数据在处理大对象编程时将我们从混


乱的属性字符串中解放出来.

 

ajaxSetup()


    可是我们是不是所有用到ajax的地方都写一遍ajax的请求参数?或者当我们想对已有的所有ajax请求添加一个指


定参数时我们该如何做?这时候我们就需要用到ajaxSetup()设置全局 AJAX 默认options选项。当程序中需要发起多


AJAX请求时,则不用再为每一个请求配置请求的参数。


说明:


         既然是全局默认选项,所以,该项中设置的参数会影响所有的$.ajax请求如$.get()$.post()$.ajax等。需要


注意的是,如果在请求时重新设置了已参数值,这时请求会用新设置的值,而不是用$.ajaxSetup中默认设置的值,


$.ajaxSetup函数所设置的默认值不会应用到load()命令上。对于实用工具函数,如$.get()$.post(),其HTTP


法不会因为使用这些默认值而被覆盖。如设置GET的默认类型不会导致$.post()使用HTTPGET方法。这样也就解决


了我们开始提出的两个问题,当我们需要多个ajax请求时,可以写在ajaxSetup()中,而当我们需要添加一个指定参数


时,我们可以在公共js文件中添加$.ajaxSetup()方法,在方法里面追加参数


demo

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>  <title>jQuery Ajax - Load</title>  <script type="text/javascript" src="../scripts/jquery-1.3.2-vsdoc2.js"></script>  <script type="text/javascript">        $(document).ready(function()        {            $.ajaxSetup({                url: "../data/ajaxSetup.aspx",                data: { "param": "wyj.wang" },                global: false,                type: "POST",                success: function(data, textStatus) { $("#divResult").html(data); }            });            $("#btnAjax").click(function(event) { $.ajax(); });            $("#btnGet").click(function(event) { $.get(); });            $("#btnPost").click(function(event) { $.post(); });            $("#btnGet2").click(function(event) { $.get("../data/ajaxSetup1.aspx",{ "param": "sadfdsfdas" }); });        });  </script></head><body>        <button id="btnAjax">不传递参数调用ajax()方法</button><br />     <button id="btnGet">不传递参数调用get()方法</button><br />     <button id="btnPost">不传递参数调用post()方法</button><br />     <button id="btnGet2">传递参数调用get()方法, 使用全局的默认回调函数</button><br />     <br />     <div id="divResult"></div></body></html>

 


全局Ajax事件


    我们在上面的demo中看到有这样一个属性:global。它是Boolean类型的,默认为true,用来设置是否触发全局的


Ajax事件。


全局Ajax事件是一系列伴随Ajax请求发生的事件.主要有如下事件:


名称

说明

ajaxComplete( callback )

AJAX请求完成时执行函数

ajaxError( callback )

AJAX请求发生错误时执行函数

ajaxSend( callback )

AJAX请求发送前执行函数

ajaxStart( callback )

AJAX请求开始时执行函数

ajaxStop( callback )

AJAX请求结束时执行函数

ajaxSuccess( callback )

AJAX请求成功时执行函数


 

   我们可以通过将默认optionsglobal属性设置为false来取消Aja全局事件的触发。

 

总结:


    全局Ajax事件可以说是比较特殊的事件,这些事件的存在,在某些情况下,让我们可以针对Ajax不同的状态做一


些事情。而ajaxSetup()的存在,也让AjaxQuery中更加灵活。

0 0