Toon posts:

[JS] Settimeout probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een pagina die elke 5 seconde via XMLHTTP een pagina moet oproepen. Ik heb het nu als volgt geprobeerd:

code:
1
2
3
4
5
6
7
<script type="text/javascript"> 
function update() 
{ 
    getAndSetOnline('http://www.audities.nl/onlinestate.php', 'currentdate');
    settimeout(update(),5000);
} 
</script/>


Waarbij getAndSetOnline dus de functie is die de XMLHTTP oproept. Daarna wil ik dezelfde code weer openen met settimeout, maar dit geeft de foutmelding 'Out of memory: line 22". Ik heb op google gezocht en er zijn wel wat topics hierover, maar nergens komt er een duidelijk antwoord uit.

  • André
  • Registratie: Maart 2002
  • Laatst online: 04-05 16:01

André

Analytics dude

Sowieso werkt settimeout niet en setTimeout wel ;) En dat geheugen probleem komt waarschijnlijk doordat je geen " om je functie heen hebt gezet.

Probeer het dus eens zo: setTimeout("update()", 5000);

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

Je krijgt inderdaad een infinite loop doordat update() hier meteen weer wordt aangeroepen; argumenten worden namelijk eerst geevalueerd voordat de functiecall plaatsvind.
setTimeout accepteerd of een expression, of een functie-referentie als argument, dus of zo:
JavaScript:
1
setTimeout('update()', 5000);

of zo:
JavaScript:
1
setTimeout(update, 5000);

Een functiecall kan op zich wel, maar die moet dan of een expressie of een functie-referentie teruggeven:
JavaScript:
1
2
3
4
5
6
7
setTimeout(foo(), 5000);

function foo()
{
    return update;
    //-- of: return 'update()';
}

;)

Intentionally left blank