我正在使用jquery:
我有一个简单的ajax,一旦点击一个按钮就会加载一个XML文件。
$.ajax({
type: "GET",
url: "file.xml",
dataType: "xml",
async:false,
success: function(xml){
//do something
},
error: function() {
alert("An error occurred while processing XML file.");
}
});
我的问题是,每次点击按钮时都会加载XML吗?或者它只是第一次加载?我问,因为我宁愿只加载一次,然后根据需要使用多次。我不知道浏览器是否第一次缓存文件然后重新使用它,或者每次单击按钮时文件是否都是新加载的。
我得到的是......如果每次点击按钮时加载它,那么我可以加载一次,将结果添加到变量中,只需在每次需要数据时访问变量。但如果它被加载一次并缓存,那么就不需要将结果存储在变量中。
总结......我不明白缓存是如何工作的。
答案 0 :(得分:1)
它不是缓存它的JavaScript,它是浏览器 - 很可能是它会在第一个请求后缓存,具体取决于过期标题和诸如此类的东西。您也可以通过多种技术添加JS级缓存层。例如,LocalStorage,或者如果你使用AngularJS,你可以设置$ cacheFactory。
jQuery默认将cache
设置为true $.ajax
,这可能是你想要的。如果你改变主意,可以覆盖它:
<强>缓存强>
如果设置为false,则会强制请求的页面不被缓存 浏览器。注意:将缓存设置为false只能正常使用 HEAD和GET请求。它的工作原理是将“_ = {timestamp}”附加到 GET参数。其他类型的参数不需要 请求,但在IE8中,对已经存在的URL进行POST时除外 GET请求。