Mise à jour d'un site automatiquement.

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
Cesanjjaque
Messages : 1
Enregistré le : 21 mai 2024, 15:15

Mise à jour d'un site automatiquement.

Message par Cesanjjaque » 21 mai 2024, 16:04

Bonjour,
J'ai réalisé un "minisite" (une page) qui donne sur de "grands écrans" d'affichage distants avec un navigateur en mode kiosk la disponibilité des articles dans une structure d'aide alimentaire. Le site provient d'un serveur Apache situé dans un NAS Synology.
Cela fonctionne, mais les cadres ne sont pas mis à jour proprement ni systématiquement.
La page principale est constituée de cadres déclarés comme des objects, et les objects sont des fichiers html qui sont de simple listes entrecoupées de balises<br>
Les cadres 0, 6 7, 8 et 9 sont mis à jour, les autres servent à la déco et à des informations diverses et ne posent pas de problème :
Sur la page principale, j'ai ce code javascript : (avec ce code je balaye successivement les cadres pour les mettre à jour en 30 secondes) :
<script type="text/javascript">
setInterval(() => {
setTimeout(() => {
let obj = document.getElementsByTagName("object")[0];
obj.setAttribute("data", obj.getAttribute("data"));
}, 5000);
setTimeout(() => {
let obj = document.getElementsByTagName("object")[6];
obj.setAttribute("data", obj.getAttribute("data"));
}, 10000);
setTimeout(() => {
let obj = document.getElementsByTagName("object")[7];
obj.setAttribute("data", obj.getAttribute("data"));
}, 15000);
setTimeout(() => {
let obj = document.getElementsByTagName("object")[8];
obj.setAttribute("data", obj.getAttribute("data"));
}, 20000);
setTimeout(() => {
let obj = document.getElementsByTagName("object")[9];
obj.setAttribute("data", obj.getAttribute("data"));
}, 25000);
}, 30000);
</script>
et voici comme exemple un fichier html correspondant à l'object 8 (qui corresponds à des fruits disponibles) (les autres fichiers sont de structure identiques : Legumes, Surgeles, Vienoiseries ...) :
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<link rel="stylesheet" href="style.css">
</head>
<body class="c">
ABRICOT<br>BANANE<br>CITRON<br>FRAISE<br>MELON<br>ORANGE<br>PECHE / NECTARINE<br>POMME<br>
</body>
Les contenus de ces fichiers sont mis à jour directement sur le serveur NAS Synology avec une macro EXCEL qui permet d'éviter de manipuler le code html.
Tout se passe en réseau local sur divers écrans associés à des mini ordinateurs avec un navigateur internet en mode kiosk.
En fait cela fonctionne "à peu près" cet à dire :
  • Les mises à jour ne sont pas systématiques,
    Parfois entre deux mises à jour la liste est absente 30 secondes et l'on a juste le fond du cadre gris,
    Le comportement n'est pas identique d'un navigateur à l'autre (firefox, Google chrome ...)
    Cela ne semble pas lié au système d'exploitation (Linux .... Windows 7, 10, 11)
    Le comportement est bien meilleur sur les postes en Ethernet.
En fait je n'arrive pas à trouver de solution satisfaisante !
et je cherche des idées ...
Les listes sont mises à jour 3 à 4 fois par jour seulement aussi mettre à jour tts les 30 sec. c'est du luxe (il y a bien sûr la solution de virer le code JavaScript et les balises <meta http-equiv> d'aller sur place pour appuyer sur F5 ou Ctrl + F5 mais NON c'est vraiment pas pratique),
Merci pour avoir lu jusqu'ici et pour vos réponses éventuelles ...
Cordialement.

anniemit
Messages : 1
Enregistré le : 05 juin 2024, 11:24

Re: Mise à jour d'un site automatiquement.

Message par anniemit » 05 juin 2024, 11:27

Bonjour,

Je pense que vous devriez utiliser la méthode location.reload() pour recharger les images au lieu de modifier l'attribut data. Cette méthode force le rechargement de la page et garantit que les dernières modifications sont prises en compte. Par exemple :

Code : Tout sélectionner

setTimeout(() => {
  let obj = document.getElementsByTagName("object")[0];
  obj.contentDocument.location.reload(true);
}, 5000);

tukiolp
Messages : 1
Enregistré le : 10 juin 2024, 09:22

Re: Mise à jour d'un site automatiquement.

Message par tukiolp » 10 juin 2024, 09:23

Instead of altering the data attribute, you should refresh the picture using the location.reload() method. To apply the most recent updates, this technique makes the page reload.

geometry dash

natalie321
Messages : 4
Enregistré le : 22 janv. 2024, 10:57

Re: Mise à jour d'un site automatiquement.

Message par natalie321 » 23 août 2024, 10:53

Que diriez-vous d’optimiser le code JavaScript et HTML,Buckshot Roulette d’améliorer les performances du réseau et d’explorer des approches alternatives telles que les mises à jour côté serveur ou les technologies de communication en temps réel?

forgetduck
Messages : 3
Enregistré le : 12 nov. 2024, 03:18

Re: Mise à jour d'un site automatiquement.

Message par forgetduck » 12 nov. 2024, 03:23

tukiolp a écrit :
10 juin 2024, 09:23
Instead of altering the data attribute, you should refresh the picture using the location.reload() method. To apply the most recent updates, this technique makes the page reload.

doodle baseball
Can you share how to refresh the image using location.reload() method?

LaurieMcdowell
Messages : 5
Enregistré le : 09 juil. 2024, 14:21

Re: Mise à jour d'un site automatiquement.

Message par LaurieMcdowell » 04 mars 2025, 11:38

Les problèmes peuvent être liés à plusieurs aspects, de la gestion de la mise en cache aux spécificités du travail avec les objets <object>talking tom gold run dans les navigateurs.

Répondre