Voor een simpel lichtkrant gevalletje heb ik een script wat elke keer opnieuw door mijn JSON heen moet loopen met inachtneming van de tijd in de JSON data.
Mijn JSON data bestaat uit een pagina ID en een tijd hoe lang deze pagina getoond moet worden. Ik heb hieronder een uitgekleede versie maar er gaat iets basaals elke keer mis
Ik zit ergens met een giga denkfout maar ik krijg het niet verholpen
Hij moet een ajax request doen naar ID 8 en deze pagina 2 seconden tonen (laadtijd nemen we even niet mee)
Daarna moet hij pagina ID 6 opvragen en deze voor 4 seconden tonen
Daarna moet hij pagina ID 7 opvragen en deze voor 6 seconden tonen
Daarna moet hij pagina ID 9 opvragen en deze voor 8 seconden tonen
Daarna moet hij pagina ID 10 opvragen en deze voor 10 seconden tonen
Echter gaat het bij de laatste pagina mis (hij wordt getoond met de tijd van de 1e pagina met ID 8 ) en bij de 2e ronde wordt ID 8 zelfs helemaal overgeslagen.
In de code zit ook console.log en de output staat onder de code.
console output
Mijn JSON data bestaat uit een pagina ID en een tijd hoe lang deze pagina getoond moet worden. Ik heb hieronder een uitgekleede versie maar er gaat iets basaals elke keer mis

Hij moet een ajax request doen naar ID 8 en deze pagina 2 seconden tonen (laadtijd nemen we even niet mee)
Daarna moet hij pagina ID 6 opvragen en deze voor 4 seconden tonen
Daarna moet hij pagina ID 7 opvragen en deze voor 6 seconden tonen
Daarna moet hij pagina ID 9 opvragen en deze voor 8 seconden tonen
Daarna moet hij pagina ID 10 opvragen en deze voor 10 seconden tonen
Echter gaat het bij de laatste pagina mis (hij wordt getoond met de tijd van de 1e pagina met ID 8 ) en bij de 2e ronde wordt ID 8 zelfs helemaal overgeslagen.
In de code zit ook console.log en de output staat onder de code.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| var jsonData = [ { "id": "8", "tijd": "2" }, { "id": "6", "tijd": "4" }, { "id": "7", "tijd": "6" }, { "id": "9", "tijd": "8" }, { "id": "10", "tijd": "10" } ]; var paginaIndex = 0; function URLophalen(id) { $.ajax({ url: '/ajax_player.php?pid=' + id, type: 'GET', dataType: 'html', success: function(data) { $("#content_inhoud").html(data); if (paginaIndex < (jsonData.length-1)) { console.log("Niet de laatste - ID: " + jsonData[paginaIndex].id + ", Tijd: " + jsonData[paginaIndex].tijd + ', paginaIndex: ' + paginaIndex) setTimeout(volgendeURLophalen, jsonData[paginaIndex].tijd*1000); } else { paginaIndex = 0; console.log("De laatste - ID: " + jsonData[paginaIndex].id + ", Tijd: " + jsonData[paginaIndex].tijd + ', paginaIndex: ' + paginaIndex) setTimeout(volgendeURLophalen, jsonData[paginaIndex].tijd*1000); } paginaIndex++; }, error: function(xhr, status, error) { console.error('Fout: ' + error); } }); } function volgendeURLophalen() { if (paginaIndex < jsonData.length) { URLophalen(jsonData[paginaIndex].id); } } volgendeURLophalen(); |
console output
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Niet de laatste - ID: 8, Tijd: 2, paginaIndex: 0 Niet de laatste - ID: 6, Tijd: 4, paginaIndex: 1 Niet de laatste - ID: 7, Tijd: 6, paginaIndex: 2 Niet de laatste - ID: 9, Tijd: 8, paginaIndex: 3 De laatste - ID: 8, Tijd: 2, paginaIndex: 0 Niet de laatste - ID: 6, Tijd: 4, paginaIndex: 1 Niet de laatste - ID: 7, Tijd: 6, paginaIndex: 2 Niet de laatste - ID: 9, Tijd: 8, paginaIndex: 3 De laatste - ID: 8, Tijd: 2, paginaIndex: 0 Niet de laatste - ID: 6, Tijd: 4, paginaIndex: 1 Niet de laatste - ID: 7, Tijd: 6, paginaIndex: 2 Niet de laatste - ID: 9, Tijd: 8, paginaIndex: 3 De laatste - ID: 8, Tijd: 2, paginaIndex: 0 Niet de laatste - ID: 6, Tijd: 4, paginaIndex: 1 Niet de laatste - ID: 7, Tijd: 6, paginaIndex: 2 |
[ Voor 0% gewijzigd door WoBBeL op 28-10-2023 19:28 . Reden: juiste code tag ]