Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX使数组全局化_Javascript_Ajax_Arrays_Global - Fatal编程技术网

Javascript AJAX使数组全局化

Javascript AJAX使数组全局化,javascript,ajax,arrays,global,Javascript,Ajax,Arrays,Global,我试图将返回AJAX的XML中相应的数据值存储到全局数组中,然后使用字母调用函数从中删除一些元素,但执行起来有问题。 数组不是全局的。 这是坏代码。 谢谢你的帮助 var someArray=new Array(); function refreshPage() { downloadUrl("page.php", function(data) { markers = data.documentElement.getElementsByTagName("marker");

我试图将返回AJAX的XML中相应的数据值存储到全局数组中,然后使用字母调用函数从中删除一些元素,但执行起来有问题。 数组不是全局的。 这是坏代码。 谢谢你的帮助

var someArray=new Array();
function refreshPage() {
    downloadUrl("page.php", function(data) {
        markers = data.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {  
            var value=markers[i].getAttribute("Value");
            someArray.push(value);
        }
    });
    window.setTimeout("refreshPage()",5000);
}

function removeElement(value){
    someArray.slice(value,1);
}

function downloadUrl(url, callback) {
    var status = -1;
    var request = createXmlHttpRequest();
    if (!request) {
       return false;
    }
    request.onreadystatechange = function() {
    if (request.readyState == 4) {
        try {
          status = request.status;
        } catch (e) {
    }
    if (status == 200) {
       callback(request.responseXML, request.status);
       request.onreadystatechange = function() {};
    }
  }
}
request.open('GET', url, true);
  try {
    request.send(null);
  } catch (e) {
    changeStatus(e);
  }
};
var someArray=newarray();
函数刷新页面(){
下载URL(“page.php”,函数(数据){
markers=data.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i
您考虑过使用本地存储吗

// Store
localStorage.setItem("lastname", "Smith");

// Retrieve
localStorage.getItem("lastname");
如果您想继续使用ajax,请执行以下操作

var it_works = false;

$.ajax({
  type: 'POST',
  async: false,
  url: "some_file.php",
  data: "",
  success: function() {it_works = true;}
});

alert(it_works);

首先,将“downloadUrl”(“page.php,function(data){”更改为“downloadUrl”(“page.php”,function(data){”您的意思是使用
removelement()吗
在您的
setTimeout
中?
slice
获取数组的一个子集。它不会删除任何内容。范围似乎不是问题所在。对我来说,它看起来非常全局,但您没有更改数组?您确定标记有数据吗?
console.log(标记)
就在您定义它和
console.log(值)之后
在您定义它之后。您看到您期望的了吗?示例XML可能也会有所帮助。