jQuery-$ .ajax()之间的区别; 和$ .ajaxSetup();

jQuery中的$.ajax();$.ajaxSetup();之间有什么区别,如下所示:

$.ajax({
    cache:false
});

$.ajaxSetup({
    cache:true
});

另外,哪个是最佳选择?

Sagar Ranpise asked 2019-11-15T20:23:39Z
5个解决方案
106 votes

无论您使用哪种jQuery方法($ .get,$。ajax等),以下内容都将防止将来所有AJAX请求都被缓存。

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

您应该使用$ .ajax,这将允许您关闭该实例的缓存:

$.ajax({url: "myurl", success: myCallback, cache: false});
Wazy answered 2019-11-15T20:24:02Z
15 votes

$.ajax将默认值设置为对所有ajax请求均有效。 之后,您不必在$.ajax中进行相同的设置

$.ajax中的所有设置仅对该ajax调用有效。

Ergec answered 2019-11-15T20:24:32Z
5 votes

第一个在每个请求的基础上禁用缓存,第二个将其设置为默认情况下对所有AJAX功能全局禁用。

alex answered 2019-11-15T20:24:57Z
2 votes

为了避免缓存,一种选择是为相同的资源或数据提供不同的URL。 要生成其他URL,可以在URL末尾添加一个随机查询字符串。 该技术适用于JQuery,Angular或其他类型的ajax请求。

myURL = myURL +"?random="+new Date().getTime();

jQuery通过$.ajax({cache:false})$.ajaxSetup({cache:false});使用类似的技术

$.ajax({cache:false})应用了包含该技术的技术,$.ajaxSetup({cache:false});应用了所有AJAX功能的技术。

Razan Paul answered 2019-11-15T20:25:34Z
0 votes

另外,哪个是最佳选择?

根据jQuery api文档,不建议使用$.ajax

注意:此处指定的设置将影响对$.ajax或基于Ajax的派生工具(如2615766769696506506881)的所有调用。由于其他调用者(例如插件)可能期望使用正常的默认设置,因此这可能会导致不良行为。 因此,强烈建议您不要使用此API。 而是在调用中显式设置选项或定义一个简单的插件即可。

today answered 2019-11-15T20:26:08Z
translate from https://stackoverflow.com:/questions/7750447/difference-between-ajax-and-ajaxsetup