`
highfly-s
  • 浏览: 102121 次
  • 性别: 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()事件然后再进行参数判断要简单的多。

分享到:
评论

相关推荐

    $.ajax()方法详解

    同时,可以通过`$.ajaxSetup()`来设置全局的默认选项。 总的来说,$.ajax()方法是jQuery中处理Ajax请求的核心工具,它的强大在于可以灵活地控制请求的各个阶段,适应各种不同的网络交互需求。熟练掌握$.ajax()方法...

    JQ中$.ajax()方法详解

    - 默认值:无(全局配置可通过`$.ajaxSetup()`设置) - 描述:定义请求超时时间(毫秒),如果请求超过了这个时间限制,则会自动中断请求。此选项对于防止长时间等待无响应的服务器非常有用。 #### 4. `async` - ...

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

    在JavaScript和jQuery的世界里,`$.ajaxSetup()` 是一个非常实用的方法,它可以用来设置全局的Ajax请求配置。当你有许多Ajax请求需要遵循相同预处理规则时,`$.ajaxSetup()` 就能大大简化代码,避免重复的工作。在...

    jQuery Ajax之$.get()方法和$.post()方法

    为了提高性能,可以使用$.ajaxSetup()来设置全局的Ajax选项,或者使用$.getJSON()($.get()的JSON版本)和$.getScript()(加载并执行远程JavaScript)等简化的API。 总的来说,$.get()和$.post()是jQuery中实现...

    jQuery 封装Ajax

    `$.ajaxSetup()`可以全局设置Ajax请求的默认行为,包括响应头的处理。例如,可以设置`xhrFields`来访问服务器的自定义响应头。 ### 9. 缓存控制 默认情况下,GET请求会被缓存,可以通过设置`cache: false`禁用缓存...

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

    这个设置覆盖了全局的超时设置,可以通过$.ajaxSetup()方法进行全局配置。 4. async:此参数为布尔值,默认为true,表示请求是异步进行的。如果设置为false,那么请求就是同步的,这会锁定浏览器,直到请求完成,...

    jQuery1-8-2.js和jqueryAPI

    - **$.ajaxSetup()**:设置全局Ajax选项。 - **$.getScript()**:异步加载并执行JavaScript脚本。 - **$.getJSON()**:获取JSON数据。 - **$.param()**:序列化表单数据为URL查询字符串。 - **$.proxy()**:创建一个...

    jQueryAjax.rar_jquery 例子

    例如,`$.ajaxSetup()`可以设置全局Ajax选项,`$.ajaxComplete()`可用于注册在所有Ajax请求完成后触发的回调函数。 总的来说,jQuery与Ajax的结合使得前端开发者能够更便捷地实现动态交互,提升用户体验。在"jQuery...

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

    这个设置可以覆盖全局的$.ajaxSetup()方法设置的超时时间。 4. async:这个参数是Boolean类型,指定请求是否为异步。默认值为true,表示请求是异步的。将此参数设置为false,可以执行同步请求,但同步请求会锁定...

    jQuery.ajax()

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

    $.ajax()方法参数详解

    此设置会覆盖全局的$.ajaxSetup()方法中的超时设定。 4. **async**: 这是Boolean类型的参数,其默认值为true,意味着所有请求都是异步的。如果将其设为false,请求将会变为同步,这会导致浏览器在请求完成之前锁定...

    $.getJSON在IE下失效的原因分析及解决方法

    在JavaScript的jQuery库中,`$.getJSON`是一个非常常用的方法,用于从服务器获取JSON格式的数据。然而,在某些情况下,尤其是在Internet Explorer(IE)浏览器中,可能会遇到`$.getJSON`失效的问题,导致数据无法...

    Jquery在IE7下无法使用 $.ajax解决方法

    Microsoft failed to properly // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available // This function can be overriden by calling jQuery.ajaxSetup xhr:function(){ ...

    jquery-ajax.zip_java programming

    5. **$.ajaxSetup()**:全局配置所有的Ajax请求,包括错误处理和默认设置。 【jQuery Ajax的实战应用】 在提供的课程材料中,可能包含了一些关于使用jQuery进行Ajax交互的实例。比如: - cours1.pdf 和 cours2....

    jQuery 1.5 API 中文版

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

    Ajax_JQuery笔记.rar

    2. **Ajax设置**:可以通过$.ajaxSetup()设置全局Ajax选项,如timeout(超时时间)、dataType(预期数据类型)等。 3. **局部Ajax设置**:在特定的$.ajax()、$.get()等函数调用中,可以设置局部的Ajax选项,覆盖全局...

Global site tag (gtag.js) - Google Analytics