【发布时间】:2017-02-17 19:36:48
【问题描述】:
通过使用 for-loop 向服务器询问几个数据库条目,我编写了一段代码,效果很好,但是:
神奇的是,这段代码在 IE11 上不起作用。 对于 Google Chrome、Firefox、Safari,...,它运行良好。但不幸的是我需要使用 IE11。该代码没有给出错误,但是从服务器返回的数据不存在。只传输了 for - 循环中的最后一个元素。
通过使用 IE 网络连接表示工具,可以看到所有请求都被发回了,但不知何故只有最后一个已经存在。可能有人已经遇到过这个问题,可以给我一些提示...
function getData(setAddress_Event, liter_hour, Fluid_id, dateArray){
return $.getJSON(setAddress_Event + liter_hour + Fluid_id + "/" + dateArray).then(function(data){
return {
data_list:data
};
});
}
//get day2day data
var numPendingResults = dateArray.length;
//new var declaration --> "let" is only valid inside the for loop!!
for(let j = 0; j<dateArray.length; j++)
{
getData(setAddress_Event(), "liter_hour/", Fluid_id, dateArray[j]).then(function(returndata){
//received data!
data_collection[j] = returndata;
numPendingResults--; // one less to wait for!
if (!numPendingResults) { // we have everything!
//console.log(data_collection);
//function call which sends the data forward
dataReady(data_collection, data_limit);
}
dataReady 函数应该处理接收到的数据,但不知何故使用 IE11,只有来自循环的最后一个请求!因此我决定开一个新的问题。说不定哪位高手能给我点提示...
【问题讨论】:
-
“神奇的是,这段代码在 IE 上不起作用” - 我认为每个 Web 开发人员都至少说过一次这些话...... :(
标签: javascript jquery ajax internet-explorer getjson