Durch die Verwendung einer for-Schleife den Server für mehrere Datenbankeinträge zu fragen, ich ein Stück Code geschrieben hat, die richtigen gut funktioniert, ABER:
Magisch dieses Stück Code funktioniert nicht auf dem IE11. Für Google Chrome, Firefox, Safari, ... funktioniert es gut. Aber leider muss ich IE11 verwenden. Der Code gibt keinen Fehler, aber die vom Server zurückgegebenen Daten sind nicht vorhanden. Nur das letzte Element in der For - Schleife wurde übertragen.
Mit dem IE Network Connection Representation Tool kann man sehen, dass alle Anfragen zurückgeschickt wurden, aber irgendwie ist nur die letzte schon da. Mabye schon jemand dieses Problem gehabt und kann einige Hinweise geben mir ...
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);
}
die Funktion Dataready, sollten die empfangenen Daten verarbeiten, aber irgendwie IE11 verwenden, nur die letzte Anforderung von der Schleife ist da! Deshalb habe ich beschlossen, eine neue Frage zu stellen. Vielleicht gibt es ein Genie, das mir einige Hinweise geben kann ...
* "Magisch, dieses Stück Code funktioniert nicht auf IE" * - Ich denke, jeder Webentwickler hat habe diese Worte mindestens einmal gesprochen ... :( –
Macintoshilly :) –