Rolf B: Webservice aufrufende HTML Seite zeigt manchmal erst nach 2mal aktualisieren Daten an!

Beitrag lesen

Hallo hmm,

ich vermute eine Race-Condition, d.h. der Ajax-Callback läuft, bevor das DOM fertig aufgebaut ist.

Am einfachsten ist, wenn Du den Ajax-Request komplett in den Ready-Handler schiebst.

Wenn es deine Absicht ist, Seitenaufbau und Datenbeschaffung zu parallelisieren, dann setze den Ajax-Call in ein Promise, das Du bei Eintreffen der Daten resolvest. Und in den ready-Handler setzt du promise.then(...).

var getData = new Promise(function(resolve, reject) {
   $.ajax( {
      // übrige Parameter
      success: resolve; // promise-Resolver ist 1:1 als success-Funktion nutzbar,
      error: function(req, status, error): reject({ status, error });
   }); 
});

// JQuery Readyhandler setzen
$(function() {
   // hier die Seiteninitialisierung

   // AJAX Ergebnis abholen (erfolgt asynchron, sobald Daten verfügbar sind)
   getData.then(function(data) {
      // Hier der Code aus deinem ehemaligen success-Handler
   })
   .catch(function(ajaxError) {
      // Handling je nach ajaxError.status und ajaxError.error
   });
});

Rolf

--
Dosen sind silbern