我試圖從Google電子表格中將一組單元格拉到網頁中進行報告。我讀了幾個其他帖子,建議使用超時,但我似乎無法得到那個工作。如果你認爲這會起作用,我可以添加我試圖用於超時的代碼。這裏是我的代碼:如何在javascript中循環訪問xmlhttprequest
var days = new Array();
days[0] ="G11%3AG11"; /*Today*/
days[1] ="G10%3AG10";
days[2] ="G9%3AG9";
days[3] ="G8%3AG8";
days[4] ="G7%3AG7";
days[5] ="G6%3AG6";
days[6] ="G5%3AG5";
days[7] ="G4%3AG4"; /*One week ago*/
var dayOfWeek = new Array();
dayOfWeek[0] ="day0";
dayOfWeek[1] ="day1";
dayOfWeek[2] ="day2";
dayOfWeek[3] ="day3";
dayOfWeek[4] ="day4";
dayOfWeek[5] ="day5";
dayOfWeek[6] ="day6";
dayOfWeek[7] ="day7";
function getValue(cell, element){
var url = "https://docs.google.com/spreadsheet/pub?key=MyKey&single=true&gid=2&range="+cell+"&output=csv";
temp = new XMLHttpRequest();
temp.onreadystatechange = function() {
if (temp.readyState === 4) {
document.getElementById(element).innerHTML = temp.responseText;
}
};
temp.open("GET", url, true);
temp.send(null);
}
當我把這個代碼的主體功能是什麼樣子:
for(var a=0;a<days.length;a++){
getValue(days[a],dayOfWeek[a]);
}
當我在運行它循環我爲每個id標籤獲得相同的值。它們都是數組中最後一項的值。我不確定如果問題是xmlhttprequest沒有得到足夠的時間或什麼,任何幫助將不勝感激。
你的循環聲明瞭一個索引'a',但你在體內引用'i'?此外,您應該考慮對每天的數據進行單一請求,而不是同時進行7次,因爲當您獲得代碼工作時,這將不可避免地成爲瓶頸的開始。 – Emissary
好的@ @使者謝謝!最終,我們將轉而採用全部7天的時間,但現在讓項目運行起來更簡單。 – goteamtim