Ik zit met een probleem. Ik moet bij het afsluiten van mijn browser of bij het veranderen naar een andere pagina een php pagina uitvoeren. Dit doe ik a.d.h.v. een ajax_do. Nu is het zo dat hij dit soms doet en soms ook niet. Dus soms voert hij het script uit maar 1/5 keren doet hij het niet. Hoe kan ik dit eventueel oplossen?
wat is je script dat je daar voor gebruikt
en weetje de reden waarom het soms niet werkt
Met welk doel wil je dit doen?
kun je niet gewoon op de volgende pagina je script uitvoeren?
Neen het is een locking systeem dus wanneer een bepaald iets gewijzigd wordt moet het gesloten worden voor andere users en wanneer men dan uit de pagina gaat moet dat script altijd worden uitgevoerd op gelijk welken pagina en ook moet bij het sluiten van de browser het scriptje worden uitgevoerd

dit zet ik in de body:

onbeforeunload="close();" onunload="close();"

---- dit is de javascript vandiezelfde pagina ------

        function close()
        {   
            
            ajax_do("close.php?id="+<?php echo $reqidedit; ?>);
            ajax_do("close.php?id="+<?php echo $reqidedit; ?>);
        }
       



------ pagina close -----

<?php include('inc_connect.php');
    $id = $_GET['id'] ;
    $query= "UPDATE requirements SET req_opened='0' WHERE req_id='".$id."'";
    mysql_query($query) or die (mysql_error()); 
?>



erg groot is de code niet
als je nou eens in je stukje i.p.v. dit

onbeforeunload="close();" onunload="close();"

dit zet:

onbeforeunload="return false; close();" onunload="return false; close();"

dan breek je alle andere bewerkingen af die normaal uitgeoverd worden. dan kun je net even wat makkelijker debuggen (kijken welke waarde terug wordt gegeven bijvoorbeeld.)
niets werkt er, heb al vanalles geprobeerd. Is er niemand die hier een andere manier weet om een locking systeem op te zetten!?

thx
wat ik doe in mijn CMS is gewoon het document laten unloacken bij het opslaan of sluiten via de web interface. als men de borwser (of het tabblad) sluit word het document niet geunlocked. Dat is geen probleem want de persoon die hem heeft gelock kan nog gewoon toegang krijgen.
Je kunt mijn code van google code af halen. source code
Je kan ook de pagina iedere 30 seconden o.i.d. een melding laten doen dat het bestand nog steeds gelockt moet zijn. Bij die requests update je dan een regel in je database met de huidige datum/tijd. Is die datum/tijd meer dan 60 seconden geleden, dan wordt het document op dat moment blijkbaar niet bewerkt, en is het geünlockt.
Wat wil je bereiken met het script?
Jelmer schreef op 28.05.2009 16:20
Je kan ook de pagina iedere 30 seconden o.i.d. een melding laten doen dat het bestand nog steeds gelockt moet zijn. Bij die requests update je dan een regel in je database met de huidige datum/tijd. Is die datum/tijd meer dan 60 seconden geleden, dan wordt het document op dat moment blijkbaar niet bewerkt, en is het geünlockt.


Is niet handig. Dat creëert enorm veel server load, zeker met meer gebruikers.
termination schreef op 01.06.2009 19:26
Is niet handig. Dat creëert enorm veel server load, zeker met meer gebruikers.


Apache en PHP hebben er niet zoveel problemen mee, grootste zorg is al de UPDATE queries die MySQL moet verwerken. Op een server waar ik deze methode gebruik was dat het probleem, en ik heb het opgelost door een daemon in PHP te schrijven (ja, het kan echt! :P) en dat lijkt erg goed te werken. Gemiddeld handelt hij 100 gebruikers tegelijkertijd (met 10 of minder seconden interval) af en dat is geen enkel probleem.

Reageren