JS-Tutorial

JS-HAUS JS-Einführung JS Wohin JS-Ausgabe JS-Anweisungen JS-Syntax JS-Kommentare JS-Variablen JS Let JS Konst JS-Operatoren JS-Arithmetik JS-Aufgabe JS-Datentypen JS-Funktionen JS-Objekte JS-Ereignisse JS-Strings JS-String-Methoden Suche nach JS-Strings JS-String-Vorlagen JS-Nummern JS-Zahlenmethoden JS-Arrays JS-Array-Methoden JS-Array-Sortierung JS-Array-Iteration JS-Array-Konstante JS-Daten JS-Datumsformate JS Date Get-Methoden JS-Datumssatzmethoden JS Math JS Zufällig JS Boolesche Werte JS-Vergleiche JS-Bedingungen JS-Schalter JS-Schleife für JS-Schleife für In JS-Schleife für Of JS-Schleife While JS Pause JS-Iterables JS-Sets JS-Karten JS Typeof JS-Typkonvertierung JS Bitweise JS RegExp JS-Fehler JS-Bereich JS Heben Strenger JS-Modus JS dieses Schlüsselwort JS-Pfeilfunktion JS-Klassen JS JSON JS-Debugging JS-Styleguide JS Best Practices JS-Fehler JS-Leistung JS Reservierte Wörter

JS-Versionen

JS-Versionen JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-Geschichte

JS-Objekte

Objektdefinitionen Objekteigenschaften Objektmethoden Objektanzeige Objektzugriffsmethoden Objektkonstruktoren Objekt-Prototypen Objekt-Iterables Objektsätze Objektkarten Objektreferenz

JS-Funktionen

Funktionsdefinitionen Funktionsparameter Funktionsaufruf Funktionsaufruf Funktion anwenden Funktionsschließungen

JS-Klassen

Klasse Einführung Klassenvererbung Klasse statisch

JS asynchron

JS-Rückrufe JS asynchron JS verspricht JS Async/Warten

JS-HTML-DOM

DOM-Einführung DOM-Methoden DOM-Dokument DOM-Elemente DOM-HTML DOM-Formulare DOM-CSS DOM-Animationen DOM-Ereignisse DOM-Ereignis-Listener DOM-Navigation DOM-Knoten DOM-Sammlungen DOM-Knotenlisten

Stückliste des JS-Browsers

JS-Fenster JS-Bildschirm JS-Standort JS-Geschichte JS-Navigator JS-Popup-Warnung JS-Timing JS-Cookies

JS-Web-APIs

Web-API-Einführung Web Forms-API Webprotokoll-API Webspeicher-API Web Worker-API Web-Fetch-API Web-Geolocation-API

JS AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

JS JSON

JSON-Einführung JSON-Syntax JSON vs. XML JSON-Datentypen JSON-Parsing JSON-Stringify JSON-Objekte JSON-Arrays JSON-Server JSON-PHP JSON-HTML JSON JSONP

JS vs. jQuery

jQuery-Selektoren jQuery-HTML jQuery-CSS jQuery-DOM

JS-Grafik

JS-Grafik JS-Leinwand JS Plotly JS Chart.js JS Google-Diagramm JS D3.js

JS-Beispiele

JS-Beispiele JS-HTML-DOM JS-HTML-Eingabe JS-HTML-Objekte JS-HTML-Ereignisse JS-Browser JS-Editor JS-Übungen JS-Quiz JS-Zertifikat

JS-Referenzen

JavaScript-Objekte HTML-DOM-Objekte


Asynchrones JavaScript

"Ich werde später fertig!"

Funktionen, die parallel zu anderen Funktionen ausgeführt werden, werden als asynchron bezeichnet

Ein gutes Beispiel ist JavaScript setTimeout()

Asynchrones JavaScript

Die im vorherigen Kapitel verwendeten Beispiele waren sehr vereinfacht.

Der Zweck der Beispiele war, die Syntax von Callback-Funktionen zu demonstrieren:

Beispiel

function myDisplayer(something) {
  document.getElementById("demo").innerHTML = something;
}

function myCalculator(num1, num2, myCallback) {
  let sum = num1 + num2;
  myCallback(sum);
}

myCalculator(5, 5, myDisplayer);

Im obigen Beispiel myDisplayerist der Name einer Funktion.

Es wird myCalculator()als Argument übergeben.

In der realen Welt werden Rückrufe am häufigsten mit asynchronen Funktionen verwendet.

Ein typisches Beispiel ist JavaScript setTimeout().


Warten auf eine Zeitüberschreitung

Wenn Sie die JavaScript-Funktion verwenden setTimeout(), können Sie eine Callback-Funktion angeben, die bei Zeitüberschreitung ausgeführt werden soll:

Beispiel

setTimeout(myFunction, 3000);

function myFunction() {
  document.getElementById("demo").innerHTML = "I love You !!";
}

Im obigen Beispiel myFunctionwird als Callback verwendet.

myFunctionwird setTimeout()als Argument übergeben.

3000 ist die Anzahl der Millisekunden vor dem Timeout, myFunction()wird also nach 3 Sekunden aufgerufen.

Wenn Sie eine Funktion als Argument übergeben, denken Sie daran, keine Klammern zu verwenden.

Rechts: setTimeout(myFunction, 3000);

Falsch: setTimeout(meineFunktion(), 3000);

Anstatt den Namen einer Funktion als Argument an eine andere Funktion zu übergeben, können Sie stattdessen immer eine ganze Funktion übergeben:

Beispiel

setTimeout(function() { myFunction("I love You !!!"); }, 3000);

function myFunction(value) {
  document.getElementById("demo").innerHTML = value;
}

Im obigen Beispiel function(){ myFunction("I love You !!!"); } wird als Callback verwendet. Es ist eine vollständige Funktion. Die komplette Funktion wird als Argument an setTimeout() übergeben.

3000 ist die Anzahl der Millisekunden vor dem Timeout, myFunction()wird also nach 3 Sekunden aufgerufen.


Warten auf Intervalle:

Wenn Sie die JavaScript-Funktion verwenden setInterval(), können Sie eine Callback-Funktion angeben, die für jedes Intervall ausgeführt werden soll:

Beispiel

setInterval(myFunction, 1000);

function myFunction() {
  let d = new Date();
  document.getElementById("demo").innerHTML=
  d.getHours() + ":" +
  d.getMinutes() + ":" +
  d.getSeconds();
}

Im obigen Beispiel myFunctionwird als Callback verwendet.

myFunctionwird setInterval()als Argument übergeben.

1000 ist die Anzahl der Millisekunden zwischen den Intervallen, myFunction()wird also jede Sekunde aufgerufen.


Warten auf Dateien

Wenn Sie eine Funktion zum Laden einer externen Ressource (z. B. eines Skripts oder einer Datei) erstellen, können Sie den Inhalt nicht verwenden, bevor er vollständig geladen ist.

Dies ist der perfekte Zeitpunkt, um einen Rückruf zu verwenden.

Dieses Beispiel lädt eine HTML-Datei ( mycar.html) und zeigt die HTML-Datei auf einer Webseite an, nachdem die Datei vollständig geladen wurde:

Warten auf eine Datei:

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(this.responseText);
    } else {
      myCallback("Error: " + req.status);
    }
  }
  req.send();
}

getFile(myDisplayer);

Im obigen Beispiel myDisplayerwird als Callback verwendet.

myDisplayerwird getFile()als Argument übergeben.

Unten ist eine Kopie von mycar.html:

meinauto.html


<img src="img_car.jpg" alt="Nice car" style="width:100%">

<p>A car is a wheeled, self-powered motor vehicle used for transportation.
Most definitions of the term specify that cars are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels.</p>

<p>(Wikipedia)</p>