我在jQuery和ajax领域还是新手,但我有一个$.ajax请求执行GET操作以检索一些XML文件(大小约为6KB或更小)。然而,在用户停留在该页面的时间内,XML内容不应/不会更改(这个设计我无法更改,我也无法更改XML文件,因为它来自其他地方)。因此,我有一个全局变量,将响应数据存储在其中,并且对数据进行任何后续查找都是在此变量上执行的,这样就不需要进行多次请求。
考虑到XML文件可能会增加,我不确定这是否是最佳实践,而且出于Java背景的考虑,我的想法是全局公共变量通常是不可取的。
因此,我的问题是是否有更好的方法来解决这个问题,以及如果文件扩展到一些荒谬的文件大小是否会导致任何内存问题?
我认为数据可以传递给xml对象内部的某些getter/setter类型函数,这将解决我的全局公共变量问题,但仍然引出了一个问题,即是否应将响应存储在对象本身中。
例如,我目前所做的是:
// 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');