我在 jQuery 和 ajax 方面仍然是个新手,但我有一个 $.ajax 请求执行 GET 以检索一些 XML 文件(~6KB 或更少),但是在用户在该页面上花费的时间XML 内容不应该/不会改变(这个设计我不能改变,我也无权改变 XML 文件,因为我正在从其他地方读取它)。因此,我有一个全局变量,我将响应数据存储到其中,并且对数据的任何后续查找都是在这个变量上完成的,因此不需要发出多个请求。
考虑到 XML 文件可能会增加,我不确定这是最佳实践,而且由于有 Java 背景,我对全局公共(public)变量的看法通常是不行的。
所以我的问题是是否有更好的方法来执行此操作,以及如果文件扩展到一些荒谬的文件大小,这是否会导致任何内存问题?
我认为数据可以传递到 xml 对象内的一些 getter/setter 类型的函数,这将解决我的全局公共(public)变量问题,但仍然提出了我是否应该将响应存储在对象本身内的问题。
比如我目前做的是:
// top of code
var xml;
// get the file
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success : function(data) {
xml = data;
}
});
// at a later stage do something with the 'xml' object
var foo = $(xml).find('something').attr('somethingElse');
最佳答案
这是一个可以很好地完成工作的函数。我无法获得上述最佳答案。
jQuery.extend({
getValues: function(url) {
var result = null;
$.ajax({
url: url,
type: 'get',
dataType: 'xml',
async: false,
success: function(data) {
result = data;
}
});
return result;
}
});
然后要访问它,像这样创建变量:
var results = $.getValues("url string");
关于JQuery - 将 ajax 响应存储到全局变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/905298/