`
highfly-s
  • 浏览: 96761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

语法

$.ajaxSetup(name:valuename:value, ...)

设置全局 AJAX 默认选项。

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

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

另外需要提及的是$.ajaxSetup()中与$.ajax()一样,有个beforeSend:function(){}参数,是默认设置在ajax请求前执行的一个函数,该函数与$.ajaxStart()和$.ajaxSend()最大的不同在于beforeSend:function()函数是可重置的,也就是说可以直接针对不同的请求设置不同的beforeSend函数,这就方便了对于不同的请求要求预先显示不同的信息的方法。而不用$.ajaxSend的函数中进行参数判断了。所以,如果想给同一个页面上不同的ajax请求(包括load、get、post)设置不同的loading信息,无疑,给每一个请求设置beforeSend函数是很好的选择,而如果用全局事件$.ajaxSend的话,就需要在内部进行参数验证,靠检测不同的参数值来执行不同的效果,这远不如beforeSend函数方便。

需要着重强调的是,如果试图重新设置$.ajaxStart或$.ajaxSend事件,是不可能的,再次设置只会增加全局事件的执行次数(新设置的全局事件会加到已经设置的事件的后面)而beforeSend函数则不同,可以重新设置。

大家看下面的例子:

<html>
<head>
<script language="javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$("#ii").click(function(){$.ajaxSetup({cache:false,url:"jx.html",beforeSend:function(){alert("post请求之前");},success:function(result){alert(result);}});
$.post("jx.asp");
});
$("#jj").click(function(){$.ajaxSetup({cache:false,url:"jx.html",beforeSend:function(){alert("get请求之前");},success:function(result){alert(result);}});
$.get();
});

})
</script>
</head>
<body>
<div id="d" name="id" style="width:200px; height:100px;">bbb</div>
<button id="ii">加载</button>
<button id="jj">加载2</button>
</body>
</html>

上面的例子在不同的click事件中都设置了beforeSend函数,这两个函数是互不影响的,对不同的单击事件各自儿独立执行。

但大家再看下面的例子

<html>
<head>
<script language="javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$("#ii").click(function(){
$("#ii").ajaxSend(function(){alert("post请求");});
$.post("jx.asp",function(a){alert(a);});
});
$("#jj").click(function(){
$("#jj").ajaxSend(function(){alert("get请求");});
$.get("jx.html",function(a){alert(a);});
});
});
</script>
</head>
<body>
<div id="d" name="id" style="width:200px; height:100px;">bbb</div>
<button id="ii">加载</button>
<button id="jj">加载2</button>
</body>
</html>

虽然上面也是在两个click事件中分别设置了$("#id").ajaxSend()事件,但只要两个click事件都执行一次之后,两个ajaxSend事件就会追加到一起,而且会随着执行次数的增加而重复。这充分显示了ajaxSend()事件的全局性类似的ajaxStart()也有类似的效果。

所以,如果要执行区别化的请求前事件,最好用$.ajaxSetup()设置一下每一个的beforeSend()事件。在写法上,并没有太麻烦的,反而比用ajaxSend()事件然后再进行参数判断要简单的多。

分享到:
评论

相关推荐

    Jquery中$.ajax()方法参数详解

    俗说好记性不如个烂笔头,下面是jquery中的ajax方法参数详解,这里...此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,

    $.ajax()方法参数详解

    会灵活的运用ajax的方法,非常重要,本文先给大家介绍ajax的几种方法,然后通过实例给大家分析...此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求

    jQuery.ajax()

    jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非... 注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置。

    jQuery 1.5 API 中文版

    $.jQuery( selector [, context] ), .jQuery( element ), .jQuery( elementArray ), .jQuery( jQueryObject ), .jQuery( ) $.jQuery( html [, ownerDocument] ), .jQuery( html, props ) $.jQuery( fn ) jQuery ...

    jQuery 1.6 API 中文版

    可以使用$.ajaxSetup()设置任何默认参数。看jQuery.ajax( settings )下所有设置的完整列表。 version added: 1.0jQuery.ajax( settings ) settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。...

    用jQuery.ajaxSetup实现对请求和响应数据的过滤

    不知道同学们在做项目的过程中有没有相同的经历呢?在使用 ajax 的时候,需要对请求参数和响应数据进行过滤处理,比如你们觉得就让请求参数和响应信息就这么赤裸裸的在互联网里来回的穿梭,比如这样: ...

    JQuery中$.ajax()方法参数详解及应用

    此设置将覆盖$.ajaxSetup()方法的全局设 置。 async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。 如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作...

    jQuery1.4 API

    , [fn], [type]) Ajax 事件 ajaxComplete(callback) ajaxError(callback) ajaxSend(callback) ajaxStart(callback) ajaxStop(callback) ajaxSuccess(callback) 其它 $.ajaxSetup([options]) serialize() ...

    jquery ajax post提交数据乱码

    在用jquery处理html5的应用的时候,一直在...解决方法: 代码如下:$.ajaxSetup({ contentType: “application/x-www-form-urlencoded; charset=utf-8”});$.post(“test.php”, { name: “i5a6”, time: “2pm” }, 

    Jquery中Ajax 缓存带来的影响的解决方法

    使用jquery里load方法或者ajax调用页面的时候会存在cache的问题,清除cache的方法: 调用$.ajaxSetup ({cache:false}) 方法即可。 代码如下: [removed] $.ajaxSetup({ cache: false }); [removed]

    Jquery 1.3 简体中文手册

    $.ajaxSetup([options]) serialize() serializeArray() 工具 浏览器及特性检测 $.support $.browser $.browser.version $.boxModel 数组和对象操作 $.each(object, [callback]) $.extend([d],tgt,obj1,[objN...

    jquery1.11.0手册

    $.ajaxSetup([options]) serialize() serializearray() 工具 浏览器及特性检测 $.support $.browser1.9- $.browser.version $.boxModel 数组和对象操作 $.each(object,[callback]) $.extend([d],tgt,...

    JQuery 1.3 中文参考手册

    $.ajaxSetup([options]) serialize() serializeArray() 工具 浏览器及特性检测 $.support $.browser $.browser.version $.boxModel 数组和对象操作 $.each(object, [callback]) $.extend([d],tgt,obj1,[objN...

    Ajax全局加载框(Loading效果)的配置

    在Ajax进行后台数据请求的过程中,我们有时候会希望用户能知道页面后台还在做一些事情,这时候就需要给用户一个非常明确的提示,也就是我们所谓的进度条 ...$.ajaxSetup({ beforeSend: function () { //ajax请求之前 }

    $.ajax()常用方法详解(推荐)

    AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分。接下来通过本文给大家介绍ajax一些常用方法,大家有需要...此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Bool

    jquery学习必备代码和技巧

    $.ajaxSetup({ ajaxSettings:{ contentType:"application/x-www-form-urlencoded;chartset=GB2312"} });2. 解决jQuery, prototype共存,$全局变量冲突问题: &lt;script src="prototype.js"&gt;&lt;/script&gt; &...

Global site tag (gtag.js) - Google Analytics