2016-08-13 42 views
0

非常感謝,如果有人可以幫助我與這裏的語法 - 我希望做出幾個XML請求,每次獲得不同的文本文件。這是我的代碼的一般結構。我如何依次獲取每個文件(f0,f1和f2)?(beginner javascript)獲取多個文本文件的XML請求

window.onload = function(){ 

var f = (function(){ 
    var xhr = []; 
    for (i = 0; i < 3; i++){ 
     (function (i){ 
      xhr[i] = new XMLHttpRequest(); 
      f0 = "0.txt" 
      f1 = "1.txt" 
      f2 = "2.txt" 
      //??? xhr[i].open("GET", file i, true); 
      xhr[i].onreadystatechange = function() { 
       if (xhr[i].readyState == 4 && xhr[i].status == 200) { 
        //do stuff 
       } 
      }; 
      xhr[i].send(); 
     })(i); 
    } 
})(); 

}; 

回答

1

簡單地把你的文件名在數組中。

window.onload = function(){ 

var f = (function(){ 
    var xhr = []; 
    var files = ["f0.txt", "f1.txt", "f2.txt"]; 
    for (i = 0; i < 3; i++){ 
     (function (i){ 
      xhr[i] = new XMLHttpRequest(); 
      xhr[i].open("GET", files[i], true); 
      xhr[i].onreadystatechange = function() { 
       if (xhr[i].readyState == 4 && xhr[i].status == 200) { 
        //do stuff 
       } 
      }; 
      xhr[i].send(); 
     })(i); 
    } 
})(); 

}; 
+1

這可能會比我的回答更好。我沒有把他放在一起,他可能不想要那些確切的文件名; P –

0

像這樣的東西應該工作

// ... 
    for (i = 0; i < 3; i++){ 
     (function (i){ 
      xhr[i] = new XMLHttpRequest(); 
      xhr[i].open('GET', i.toString() + '.txt'); // <-- this line 
      xhr[i].onreadystatechange = function() { 
       if (xhr[i].readyState == 4 && xhr[i].status == 200) { 
// ....