Priorität sollte "schwer wiegender logischer Fehler" sein: alte statt frische Brötchen
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest (so etwas krudes musste man **anno 1990 in BASIC** tun, in JS kann man die damit **geradezu zwangsläufig verbundenen Irrtümer** durch Aufruf parametrisierter Funktionen und Objektmethoden einfach vermeiden) wirst Du, [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die alten Brötchen aus dem Brotkasten isst. **Die sind aber *„Bäh!“***
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese **jetzt** Daten aus Variable A und schreibe diese ins Dokument.
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
**Was Du willst ist:**
* fetch(): hole neue Daten und schreibe diese nach Ankunft ins Dokument.
* (Der Umweg über die globale Variable ist gar nicht nötig)
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird, bzw. geladen werden soll) → was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein: alte statt frische Brötchen
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest (so etwas krudes musste man **anno 1990 in BASIC** tun, in JS kann man die damit **geradezu zwangsläufig verbundenen Irrtümer** durch Aufruf parametrisierter Funktionen und Objektmethoden einfach vermeiden) wirst Du, [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die alten Brötchen aus dem Brotkasten isst. **Die sind aber *„Bäh!“***
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese **jetzt** Daten aus Variable A
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird, bzw. geladen werden soll) → was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein: alte statt frische Brötchen
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest (so etwas krudes musste man **anno 1990 in BASIC** tun, in JS kann man die damit **geradezu zwangsläufig verbundenen Irrtümer** durch Aufruf parametrisierter Funktionen und Objektmethoden einfach vermeiden) wirst Du, [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die alten Brötchen aus dem Brotkasten isst.
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese **jetzt** Daten aus Variable A
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird, bzw. geladen werden soll) → was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein: alte statt frische Brötchen
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest (so etwas krudes musste man **anno 1990 in BASIC** tun, in JS kann man die damit **geradezu zwangsläufig verbundenen Irrtümer** durch Aufruf parametrisierter Funktionen und Objektmethoden einfach vermeiden) wirst Du, [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die alten Brötchen aus dem Brotkasten isst.
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese **jetzt** Daten aus Variable A
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird) was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein: alte statt frische Brötchen
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest (so etwas krudes musste man **anno 1990 in BASIC** tun, in JS kann man die damit **geradezu zwangsläufig verbundenen Irrtümer** durch Aufruf parametrisierter Funktionen und Objektmethoden einfach vermeiden) wirst Du, [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die alten Brötchen aus dem Brotkasten isst.
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese jetzt Daten aus Variable A
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird) was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein.
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest (so etwas krudes musste man **anno 1990 in BASIC** tun, in JS kann man die damit **geradezu zwangsläufig verbundenen Irrtümer** durch Aufruf parametrisierter Funktionen und Objektmethoden einfach vermeiden) wirst Du, [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die Brötchen von Gestern aus dem Brotkasten isst.
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese jetzt Daten aus Variable A
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird) was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein.
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest (so etwas krudes musste man **anno 1990 in BASIC** tun, in JS kann man die damit **geradezu zwangsläufig verbundenen Irrtümer** durch Aufruf parametrisierter Funktionen und Objekte einfach vermeiden) wirst Du [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die Brötchen von Gestern aus dem Brotkasten isst.
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese jetzt Daten aus Variable A
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird) was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein.
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest wirst Du [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die Brötchen von Gestern aus dem Brotkasten isst.
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese jetzt Daten aus Variable A
**Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.**
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die mich nicht interessierende Werbung geladen wird) was einen schnellen, reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~
Priorität sollte "schwer wiegender logischer Fehler" sein.
bearbeitet von Raketenwilli> Habe auf die html-Seite einen <Div>.addEventListener( "click" ... gesetzt, und bei Betätigung desselben läuft alles wie es soll.
Da Du mit einer globalen Variable arbeitest wirst Du [im Hinblick auf Rolfs Ausführungen zum asynchronen fetch(](https://forum.selfhtml.org/self/2022/jul/22/frage-zu-fetch-und-ubergabe-von-array-aufruf-aus-anderer-js/1800691#m1800691)), hierbei **nicht mit der aktuellen sondern mit der vorherigen (alten) Antwort des Servers** arbeiten.
Das ist so, wie Du meinst, dass Du jetzt *„frische Brötchen“* einkaufst, die dann aber irgendwo parkst und im Glauben an deren Frische die Brötchen von Gestern aus dem Brotkasten isst.
* fetch(): hole neue Daten ... und schreibe **nach Ankunft** in Variable A
* Lese jetzt Daten aus Variable A
Es wird sofort - vor der Ankunft der neuen Daten - aus Variable A gelesen.
> Von Prio "WICHTIG" auf "Interesse" heruntergestuft.
Das ist ein schwerer Fehler in der Programmlogik: Du hast zwar Daten, es sind aber nicht die erwarteten. Das merkst Du aber erst wenn Du in das nur vermeintlich frische Brötchen beißt.
Wenn sich die Daten - oder der Request - hingegen nie ändern, dann hättest Du zwar korrekte Daten, aber was soll dann der wiederholte Request? Ändern sich die Daten (z.B. in der Datenbank) nicht, aber Parameter des Request dann hast Du in Deiner Variable zwar irgendwelche Daten - nur eben nicht diejenigen, die zum Request passen.
Ich selbst bin übrigens kein Freund davon, erst einmal eine leere Webseite zu liefern und dann endlose Reihen von solchen Requests zu starten um die auf der Webseite abzuholenden Inhalte abzuholen. Das Ergebnis solchen Tuns sind dann Webseiten, die erst mal erscheinen aber eben den erwarteten Inhalt nicht haben (und das eine ganze Weile lang, weil erst mal die Werbung geladen wird) war einen reflexartigen Druck auf `STRG`+`r` nach sich zieht → wenn das selbe Zeug wieder kommt (das tut es dann), geht's zurück zur Suchmaschine.
Besser ist es, den „Krempel“ (oder wenigstens die Daten) schon bei der Lieferung der Webseite mit zuliefern (und eventuell mit JS die Tabellen zu erzeugen - oder was immer Du vor hast). Auch Java-Script-Geraffel wie
~~~html
<script>
var a=['foo', 'bar', 'baz'];
</script>
~~~
kann man auch mit PHP erzeugen:
~~~PHP
<?php
$arr=['foo', 'bar', 'baz'];
echo '<script>'
. PHP_EOL
. "\t"
. "let a=[ '"
. implode( "', '", $arr )
. "' ];"
. PHP_EOL
. '</script>'
;
~~~
Erzeugt:
~~~HTML
<script>
let a=[ 'foo', 'bar', 'baz' ];
</script>
~~~