Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
talit:web:webapps:apis [2025-02-03 13:12] – [HTTP] hof | talit:web:webapps:apis [2025-02-16 16:29] (aktuell) – [JSON] hof | ||
---|---|---|---|
Zeile 40: | Zeile 40: | ||
Wir werden diese Technik verwenden, um den Spielstand auf dem Server nachzuladen, | Wir werden diese Technik verwenden, um den Spielstand auf dem Server nachzuladen, | ||
- | |||
#### Asynchronous code | #### Asynchronous code | ||
- | Eine Herausforderung in Javascript (und nicht nur dort) ist der Umgang mit längeren Aufgaben. Reagiert unser Code ja auf einen Event (z.B. einen Klick) und führt dann eine kurze Aufgabe (z.B. den Game-State ändern) aus, ist das kein Problem. Wollen wir eine potentiell längere Aufgabe (insbesondere: | + | Eine Herausforderung in Javascript (und nicht nur dort) ist der Umgang mit längeren Aufgaben. Reagiert unser Code lokal auf einen Event (z.B. einen Klick) und führt dann eine kurze Aufgabe (z.B. den Game-State ändern) aus, ist das kein Problem. Wollen wir eine potentiell längere Aufgabe (insbesondere: |
Wir wollen längere Aufgaben // | Wir wollen längere Aufgaben // | ||
Zeile 56: | Zeile 55: | ||
<code javascript> | <code javascript> | ||
- | async fetchUpdateFromServer() { | + | async function |
try { | try { | ||
const response = await fetch('/ | const response = await fetch('/ | ||
Zeile 76: | Zeile 75: | ||
{{ : | {{ : | ||
- | |||
### JSON | ### JSON | ||
- | Sollen nicht ganze Dateien, sondern nur kleine Informationsschnipsel übertragen werden, wird dafür die JavaScript Object Notation (_JSON_) verwendet. JSON sieht so aus: | + | Sollen nicht ganze Dateien, sondern nur kleine Informationsschnipsel übertragen werden, wird dafür die JavaScript Object Notation (_JSON_) verwendet. |
<code javascript> | <code javascript> | ||
- | { | + | game = { |
- | " | + | " |
- | " | + | "board": [ // game board, 0 for empty cells, 1 or 2 for filled cells. |
- | " | + | |
- | | + | |
- | | + | |
- | " ", | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
], | ], | ||
- | "winner": | + | "next": |
- | "player": " | + | } |
- | " | + | </ |
- | }</ | + | |
Merke: | Merke: | ||
Zeile 108: | Zeile 102: | ||
* wieder ein Objekt. | * wieder ein Objekt. | ||
* Mehrere Einträge sind durch Komma getrennt. | * Mehrere Einträge sind durch Komma getrennt. | ||
+ | |||
### Web-API Beispiel | ### Web-API Beispiel | ||
- | Bevor wir ein eigenes Web-API für TicTacToe | + | Bevor wir ein eigenes Web-API für Vier Gewinnt |
Die Seite https:// | Die Seite https:// |