使用jquery和ajax时,每次请求都会加载文件吗?

时间:2014-12-02 22:32:16

标签: jquery ajax

我正在使用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吗?或者它只是第一次加载?我问,因为我宁愿只加载一次,然后根据需要使用多次。我不知道浏览器是否第一次缓存文件然后重新使用它,或者每次单击按钮时文件是否都是新加载的。

我得到的是......如果每次点击按钮时加载它,那么我可以加载一次,将结果添加到变量中,只需在每次需要数据时访问变量。但如果它被加载一次并缓存,那么就不需要将结果存储在变量中。

总结......我不明白缓存是如何工作的。

1 个答案:

答案 0 :(得分:1)

它不是缓存它的JavaScript,它是浏览器 - 很可能是它会在第一个请求后缓存,具体取决于过期标题和诸如此类的东西。您也可以通过多种技术添加JS级缓存层。例如,LocalStorage,或者如果你使用AngularJS,你可以设置$ cacheFactory。

jQuery默认将cache设置为true $.ajax,这可能是你想要的。如果你改变主意,可以覆盖它:

<强>缓存

  

如果设置为false,则会强制请求的页面不被缓存   浏览器。注意:将缓存设置为false只能正常使用   HEAD和GET请求。它的工作原理是将“_ = {timestamp}”附加到   GET参数。其他类型的参数不需要   请求,但在IE8中,对已经存在的URL进行POST时除外   GET请求。