[RESOLU] Actualisation automatique sans remonter en haut de la page

Petit nouveau ! | 4 Messages

15 avr. 2022, 16:20

Bonjour,

J'ai une page web qui affiche une liste de livraison qu'il reste à livrer. Elle s'actualise automatiquement toutes les 5 minutes, et les livraisons qui ont été faites s'effacent au fur et à mesure.

Mon problème est qu'à l'actualisation, si on était tout en bas de la page, on se retrouve de nouveau en haut.
Comment faire pour empêcher ça et retourner au même endroit ?

Je suis preneuse surtout d'une solution très simple en PHP (sans JS ou AJAX). Quitte à ce que ça remonte quand même s'il s'est basé sur une livraison qui à disparu suite à l'actualisation. Par exemple avec des ancres ; mais comment on fait pour savoir au niveau de quelle ancre il était ?

Ou sinon, une solution plus complexe qui se replacerait pareil même si des livraisons ont disparu entre temps. Mais j'aurais besoin de quelques détails sur comment faire parce que j'y connais rien en JS ou AJAX.

Merci d'avance pour vos retour.

Eléphanteau du PHP | 44 Messages

15 avr. 2022, 16:44

Bonjour,
Tiens regarde par ici, je pense que ça devrait t'aider : actualiser-un-script-php-sans-update-la-page
L'illogisme n'est que la logique des autres!

Petit nouveau ! | 4 Messages

19 avr. 2022, 08:49

Merci beaucoup pour ton aide.

Avatar du membre
Mammouth du PHP | 1564 Messages

19 avr. 2022, 09:50

Elle s'actualise comment ? une meta refresh ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

19 avr. 2022, 10:18

Tu peux récupérer la position du scroll en javascript comme ceci :
https://developer.mozilla.org/fr/docs/W ... ow/scrollY

Ensuite tu peux passer en paramètre dans l'url de redirection la position courante et au (re)chargement de la page si ce paramètre est indiqué positionner le scroll jusqu'à cette position avec cette fonction :
https://developer.mozilla.org/fr/docs/W ... w/scrollBy
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

19 avr. 2022, 10:57

@rthur : cette solution me plaie beaucoup, je vais l'essayer.
Merci beaucoup pour vos réponses.

Petit nouveau ! | 1 Messages

19 avr. 2022, 14:01

Salut tu peux mettre en base de page une ancre
exemple
<p name="bas"></P>
puis dans ton refresh tu rajoute ?#name
<meta http-equiv="refresh" content="300;URL=?#bas">

Avatar du membre
Mammouth du PHP | 1564 Messages

19 avr. 2022, 14:40

C'est pas name mais id qu'il faut utiliser.

Elle demande pas à aller en bas mais là où elle était.

Petit nouveau ! | 4 Messages

19 avr. 2022, 16:14

Elle s'actualise comment ? une meta refresh ?
two3d : elle s'actualise grâce au php 'setTimeout()' :

<script type="text/javascript">
//Paramétrage
window.allowReload = true;
TextInput = false;

var ActuDelais = 300000;
setTimeout("ReloadThread()", ActuDelais);


[....]
</script>

Demain j'essaie de mettre en place la solution de récupérer la position du scroll

Mammouth du PHP | 2703 Messages

19 avr. 2022, 16:28

two3d : elle s'actualise grâce au php 'setTimeout()' :

<script type="text/javascript">
non, comme le dit le code, c'est du javascript.

Avatar du membre
Mammouth du PHP | 1564 Messages

19 avr. 2022, 17:16

setTimeout rechargera qu'une fois, mais je pense que la fonction ReloadThread() relance elle même un setTimeout.

Ya pas besoin de tous ce tralala de code, un simple setInterval suffit avec un window.location.reload() à l'intérieur.

Comme la proposé @rthur, voir avec window.pageYOffset de JavaScript puis quand un intervalle se lance récupérer la position puis faire descendre la page jusqu'à l'endroit récupéré