login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ajax en onunload

Offline CDNC - 05/02/2007 18:31 (laatste wijziging 05/02/2007 19:47)
Avatar van CDNCPHP ver gevorderde
  1. function createRequestObject()
  2. {
  3. var req;
  4. if(window.XMLHttpRequest){
  5. req = new XMLHttpRequest();
  6. }
  7. else if(window.ActiveXObject)
  8. {
  9. req = new ActiveXObject("Microsoft.XMLHTTP");
  10. }
  11. else
  12. {
  13. alert('probleempjes, bullen zijn kapoet, lache!!');
  14. }
  15. return req;
  16. }
  17. var http = createRequestObject();
  18. function stop(v)
  19. {
  20. var d = new Date();
  21. var u = d.getFullYear() + (d.getMonth()+1) + d.getDate() + d.getHours() + d.getMinutes() + d.getSeconds();
  22.  
  23. http.open('get', '/_out.php?id='+ v +'&u='+ u);
  24. http.onreadystatechange = ietsdoen();
  25. http.send(null);
  26. }
  27. function ietsdoen()
  28. { }
  29.  
  30. En
  31.  
  32. <body onunload="javascript:stop('<?=$_GET['id']?>')">

K heb mijn eerste probleem opgelost, en nu nog iets:

als ik de pagina refresh dan word de functie stop uitgevoert, dat is ok. want dan word de pagina ge-onunload, maar als ik op het kruisje klik, dan word de unonload functie 'stop' niet uitgevoert. is dat normaal?

1 antwoord

Gesponsorde links
Offline BramBo - 06/02/2007 13:26
Avatar van BramBo JS gevorderde De functie onunload word alleen maar uitgevoerd wanneer er naar een andere pagina genavigeerd word. Dus ook wanneer je op refresh drukt.

Meestal los je dit soort problemen om doormiddel van een timertje. Nu is het moeilijk op te maken wat je wilt doen door alleen deze code te zien. Maar wanneer je een timer er inzet die het tegenover gestelde van stop doet, dus bijvoorbeeld een sessie refreshen en de sessie sneller laat verlopen kan je het zelfde resultaat behalen.

Dus:
Sessie : ID | .....vars.....| lastAction

controleer in php wanneer de laatste actie is wanneer deze groter is dan bijvoorbeeld 60/180(whatever) word de actie stop uitgevoerd.

doormiddel van het timertje hou je de sessie actief:
setTimeout("sessionRefresh()", 6000);
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s