Livetrein.nl: Javascript Time Out

Gestart doorDylan10 reacties30 weergaven

11 berichten · pagina 1 van 1

Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Hoi,

Ik heb dus dit:

Codeblok (voorbeeld.php):

1
2
3



Codeblok (voorbeeld.php):

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

function update(){
setTimeout(function(){update_i()},500);
}
function update_i() {
var url = document.getElementById(change_frame);
var station = document.getElementById(station_input);
var data = station.value;
if(data.trim() == ) {

} else {
url.src = http://localhost/data.php?s= + data;
}
}

function openwindow() {
var station = document.getElementById(station_input);
var data = station.value;
if(data.trim() == ) {
alert(U heeft geen trein station in het witte vlak getypt!);
} else {

document.getElementById(light).style.display=block;
document.getElementById(fade).style.display=block;

}
}

Ik wil dus een kleine time out geven om onnodige reloads te voorkomen, alleen heb ik nu de volgende problemen:

- Als je snel op zoeken of enter drukt heeft ie niet geupdated waardoor het niet werkt.
- Als je nu Amsterdam intypt en je wacht even (op update) dan komt de lightbox en er komt een reload waardoor de lightbox weer weg gaat.

Live demo:
http://livetrein.nl/index2.php

Ik heb al verschillende dingen geprobeerd zoals op de submit button een onclick alleen werkt het allemaal niet zoals het moet. Iemand een oplossing?

- Dylan
0
Berichten
4.451
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik ben niet heel goed met Javascript, maar misschien kan je de timeout verplaatsen naar de andere functie?

Dat hij de time-out maar 1x doet?
Want volgens mij doet hij hem nu om de halve seconde omdat je update() aanroept, maar misschien dat je hem in update_i() moet zetten dat hij het 1x doet fzo?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Waarom doe je een timeout? In mijn ogen is dit totaal onnodig.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Xjessex schreef:
Waarom doe je een timeout? In mijn ogen is dit totaal onnodig.
Om onnodige reloads te voorkomen.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Wat is het probleem van onnodige reloads?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Jammer van die onnodige reloads, daaruit kan ik niet opmaken wat het probleem daarvan is?

Je kan toch bij eerste bezoek alle stations inladen en output genereren als json, en deze json kan je dan opslaan in een cookie / sessie / localstorage.
Dan heeft jouw server geen extra load, en hij hoeft per bezoeker maar 1 keer alle stations op te halen, en dit kan gewoon uit een .txt bestand, aangezien die station lijst niet echt dynamisch is.

Je kan het trouwens ook gewoon direct ophalen als json uit een .txt bestand of data bestand, dan hoef je die sessies niet te doen.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Het word al in een database opgeslagen, ik denk dat ik die time out maar gewoon weg doe.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Ja maar dan moet je het niet bij elke keyup uit de database halen he?
Dat zijn veel onnodige querys.
Maar jouw gedachte dat dit opgelost is met een timeout is verkeerd.

Je moet het uit de database halen en als json in een txt bestand zetten.
Desnoods add je een cron die dit elke nacht opnieuw uit de database haalt.

Maar dat is best onnodig want zoals ik al zei, stations is statisch, het veranderd niet vaak.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Heb het al opgelost:

Codeblok (voorbeeld.php):

1
2
3



Codeblok (voorbeeld.php):

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

function update() {
var url = document.getElementById(change_frame);
var station = document.getElementById(station_input);

var data = station.value;
if(data.trim() == ) {

} else {
url.src = http://localhost/data.php?s= + data;
openwindow();
}
}

function openwindow() {
var station = document.getElementById(station_input);
var data = station.value;
if(data.trim() == ) {
alert(U heeft geen trein station in het witte vlak getypt!);
} else {

document.getElementById(light).style.display=block;
document.getElementById(fade).style.display=block;

}
}

toevoeging op 15 september 2013, 15:45:25:
Trouwens er kwam nooit een query na onkeyup, src werd verandre van de frame
0
Thom

Lid

Berichten
10.654
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
wat is eigenlijk het nut van die loads?
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren