jQuery中$.ajax();
和$.ajaxSetup();
之间的区别如下:
$.ajax({
cache:false
});
和
$.ajaxSetup({
cache:true
});
另外,哪一个是最佳选择?
答案 0 :(得分:106)
以下将阻止所有未来的AJAX请求被缓存,无论您使用哪种jQuery方法($ .get,$ .ajax等)
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
你应该使用$ .ajax,它允许你为实例的关闭缓存:
$.ajax({url: "myurl", success: myCallback, cache: false});
答案 1 :(得分:15)
ajaxSetup
将默认值设置为对所有ajax请求有效。在此之后,您无需在$.ajax
$.ajax
中的所有设置仅对该ajax调用有效。
答案 2 :(得分:5)
第一个基于每个请求禁用缓存,第二个默认设置为全局禁用所有AJAX函数。
答案 3 :(得分:2)
为避免缓存,一种选择是为相同的资源或数据提供不同的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函数。
答案 4 :(得分:0)
另外,哪一个是最佳选择?
根据jQuery api documentation,建议不要使用$.ajaxSetup()
:
注意:此处指定的设置将影响对
$.ajax
或基于Ajax的衍生产品(如$.get()
)的所有调用。这可能导致不良行为,因为其他呼叫者(例如,插件)可能期望正常的默认设置。出于这个原因我们强烈建议不要使用此API 。相反,在调用中显式设置选项或定义一个简单的插件来执行此操作。