Heim > Web-Frontend > js-Tutorial > Wie kann ich asynchrone JavaScript-Funktionen effektiv aufrufen, ohne die Benutzeroberfläche zu blockieren?

Wie kann ich asynchrone JavaScript-Funktionen effektiv aufrufen, ohne die Benutzeroberfläche zu blockieren?

DDD
Freigeben: 2024-11-16 11:39:03
Original
408 Leute haben es durchsucht

How Can I Effectively Call Asynchronous JavaScript Functions Without Blocking the UI?

Asynchrone JavaScript-Funktionen synchron aufrufen

Ihre Anforderung, asynchrone Aufrufe synchron durchzuführen, ohne dass die Benutzeroberfläche einfriert, stellt ein einzigartiges und herausforderndes Problem dar. Leider ist es nicht möglich, die Ausführung von JavaScript zu blockieren, ohne die Benutzeroberfläche anzuhalten.

Eine mögliche Lösung besteht darin, globale Variablen für den Datenaustausch zu verwenden. Der Rückruf vom asynchronen Aufruf kann eine globale Variable ändern, die die gewünschten Daten enthält. In der Zwischenzeit überprüft ein Abfragemechanismus die globale Variable in regelmäßigen Abständen, bis die Daten verfügbar sind.

function doSomething() {
  window.data = null;  // Clear global data
  myAsynchronousCall(param1, callBack);
  var intvl = setInterval(function() {
    if (window.data) {
      clearInterval(intvl);
      console.log(window.data);
    }
  }, 100);
}

function callBack(d) {
  window.data = d;
}
Nach dem Login kopieren

Angesichts des von Ihnen angegebenen Beispiels wäre es jedoch eine geeignetere Lösung, Best Practices zu befolgen und einen Rückruf zu übergeben Funktion an doSomething():

function doSomething(func) {
  function callBack(d) {
    func(d);
  }

  myAsynchronousCall(param1, callBack);
}

doSomething(function(data) {
  console.log(data);
});
Nach dem Login kopieren

Durch die Übergabe einer Funktion an doSomething() können Sie asynchrone Aufrufe korrekt nutzen, ohne auf fragwürdige Techniken zurückgreifen zu müssen.

Das obige ist der detaillierte Inhalt vonWie kann ich asynchrone JavaScript-Funktionen effektiv aufrufen, ohne die Benutzeroberfläche zu blockieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage