Hallo,

Ik wil binnen mijn website een PHP-functie aanroepen, maar alleen bij de eerste pageload. Dus niet als pagina ververst wordt of opnieuw geladen wordt. De functie is voor een bezoekersteller, vandaar.

Vond dit antwoord:
https://stackoverflow.com/a/25070971

Ben hier mee aan de slag gegaan en dit in mijn PHP paginatemplate gezet:


<?php
echo '<script type="text/javascript">';
echo 'if (!sessionStorage.alreadyClicked) { '.mijn-functie().' sessionStorage.alreadyClicked = 1; }';
echo '</script>';
?>


Maar de functie blijft elke keer uitgevoerd worden, als ik pagina ververs.

Als ik een alert ipv mijn-functie() toe voeg werkt het wél (alert wordt niet getoond als ik pagina ververs).

Doe ik iets verkeerd?

Guido
Met false === isset() wordt je meteen met de neus op de feiten gedrukt, met !isset() lees je mogelijk over de ! heen.

En nogmaals, het gaat hier niet om voorkeur. Het gaat om het terugdringen van complexiteit. Hoe vroeger je hier in je code mee begint, hoe meer dit zijn uitwerking heeft op de rest van de code. Het omgekeerde geldt ook: programmeer je losser uit de pols dan stapelt complexiteit zich mogelijk rap op.

Dit is wel een discussie waard, maar wat in deze thread gebeurt volgt niet echt de regels van het spel van een discussie (heb tot twee maal toe proberen uit te leggen dat het niet zozeer voorkeur is maar dat er andere belangen (meer) spelen; vervolgens zeg je weer doodleuk "ieder zijn voorkeur" met een smiley, ok dan).

Ik laat het daarom hier maar bij.
Ik ben in ieder geval weer goed geholpen, heb nog wel even de array in de sessie gewijzigd (dank Thomas). Nu even voor mezelf besluiten of ik deze (niet zeer betrouwbare) teller ga plaatsen, of misschien toch maar een andere manier ga gebruiken om dit te meten.

Guido
Thomas van den Heuvel op 29/08/2020 15:56:56

Met false === isset() wordt je meteen met de neus op de feiten gedrukt, met !isset() lees je mogelijk over de ! heen.

Ja, maar dat is dus een kwestie van voorkeur en goed lezen. Ik heb/ondervind daar zelf geen enkele moeite mee. Als jij false === isset() graag gebruikt, dan is dat prima toch? Ikzelf gebruik liever !isset() omdat dat voor mij logischer voelt.

Reageren