gpt4 book ai didi

javascript - 单例模式javascript

转载 作者:搜寻专家 更新时间:2023-10-31 22:31:55 24 4
gpt4 key购买 nike

我是 javascript 的新手,我发现我不知道一种合适的方法来重复获取同一变量的实例。我正在用这个打开一个 Xml 文件:

function testXML(){
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","../res/data.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
return xmlDoc;
}

我添加了返回,这样我就可以选择该 xml 文件并进行一些搜索以加载一些包含数据的列表。问题是,每次我想使用 xml 文件读取一些数据时,我都会调用此方法,它不仅会返回 xml,还会返回 IF/Else 和 openfile 等...我想这不是那个合适。

那么我怎样才能创建一个只返回 xml 文件的方法,这样我就只能打开它一次呢?此外,打开 xml 文件一次并将其加载到变量中是安全的,比方说在 index.html 中,然后导航到其他 html 而不会丢失该变量值(xml 文件)?

谢谢!!

最佳答案

var xml;

function testXML(){
if(!xml){
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","../res/data.xml",false);
xmlhttp.send();
xml = xmlhttp.responseXML;
}
// return xml; // You can optionally also return the xml, but it'd be assigned to the variable already, any way.
}

调用该函数一次,您可以只使用 xml 变量。

或者,就像下面建议的那样,只使用 testXML() 而不是代码中的变量,并取消对返回值的注释。
这确保您不会遇到未定义的 xml。

关于javascript - 单例模式javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14874193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com