Ich versuche, ein Laden modal zu einer HTML-Seite hinzufügen, während einige Javascript ausgeführt werden. Mein Problem ist, dass ich nicht bemerken kann, wenn diese Skripte fertig sind.Javascript Callback, wenn einige Skripte in der Seite ausgeführt haben
Ich habe versucht, mit:
$.when(
$.getScript("/script1.js"),
$.getScript("/script2.js"),
$.getScript("/script3.js"),
$.Deferred(function(deferred){
$(deferred.resolve);
})
).done(function(){
console.log('everything have been executed!');
});
Aber wie die getScript JQuery documentation sagt:
Der Rückruf wird ausgelöst, sobald das Skript aber nicht unbedingt ausgeführt geladen wurde.
Gibt es eine Möglichkeit, einen Rückruf für ein solches Ereignis einzurichten?
'$ .getScript' verwendet tatsächlich die' $ .ajax' Methode. Es ist nur eine Kurzschrift. Das Problem des OP ist nicht das Laden des Skripts offensichtlich. Es ist eher zu wissen, ob eine Funktion im Lazy-Loaded-Skript ausgeführt wurde. – DavidDomain
@DavidDomain async ist falsch meine Antwort, was bedeutet, dass es lädt und führt das Skript zuerst, dann führt die Erfolgsfunktion, während mit $ .getScript async ist wahr. Ich habe die ursprüngliche Antwort bearbeitet, um sie klarer zu machen. – finbae
Asynchron falsch ist veraltet. [Synchrone und asynchrone Anfragen] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests) – DavidDomain