Actualisation d'un windget

Résolu/Fermé
Dijorxs Messages postés 5 Date d'inscription dimanche 4 août 2013 Statut Membre Dernière intervention 4 novembre 2014 - Modifié par Dijorxs le 4/08/2013 à 22:16
Dijorxs Messages postés 5 Date d'inscription dimanche 4 août 2013 Statut Membre Dernière intervention 4 novembre 2014 - 5 août 2013 à 20:23
Bonjour, Il y a quelque temps je me suis lancer dans la création d'un site pour une confrérie (d'un jeu, oui je suis un geek ^^)
bref, ce site me permet d'ajouter un "widget" sur le coté. j'ai donc mit un view de notre serveur mumble.
Mais le problèmes c'est que je souhaiterais qu'il s'actualise automatiquement. pouvez vous m'aider à trouver un script? (sachant que le widget est écrit en html)

A et oui j'ai chercher. j'ai chercher depuis ce matin sur internet quoi marquer, mais que ce soit AJAX, JS ou encore PHP, soit ça ne fonctionne pas, soit sa actualise toute la page

voici mon script de base:
 <p><iframe src="url du viewer" align="middle" width="260" height="200"></iframe></p>


et ma dernier tentative d'ajout
<html>
<head>
<meta http-equiv="REFRESH" content="5;url=url.html">
</head>
<frameset>
<frame src="url">
</frameset>
</html>


Je vous remercie d'avance de m'aider. et sur ceux bonne soirée

3 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
5 août 2013 à 10:54
Salut, les <iframe>s ça pue. Les <frameset> c'est encore pire, c'est du retour vers le passé.

De nos jours, JS avec AJAX (ou XmlHttpRequest de son vrai nom), est la meilleure solution. Ça peut paraitre dur à utiliser, mais c'est plus simple qu'on ne le pense.
Aussi, pense à expulser toute idée de frameset, d'iframe et de HTML4 de ta tête.
<!DOCTYPE html> <!-- en-tête HTML5, simple non? -->
<html>
<head>
<title>Le titre n'est pas en option!</title>
</head>
<div id="viewer">Ici apparaitra le widget</div>
<script> // Pas besoin de type="javascript" en HTML5
var timeout;
function loopRefresh() {
    clearTimeout(timeout);
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "url du viewer", false); // false = synchrone = bloque l'éxécution du code tant que la page n'est pas chargée
    xhr.send();
    document.getElementById("viewer").innerHTML = xhr.responseText;
    timeout = setTimeout(loopRefresh, 5000); // 5000 = 5sec
}
loopRefresh();
</script>
</html>
Et voilà!
1
Dijorxs Messages postés 5 Date d'inscription dimanche 4 août 2013 Statut Membre Dernière intervention 4 novembre 2014
Modifié par Dijorxs le 5/08/2013 à 17:55
Merci, cela m'a était d'une grande aide.

En fait, j'ai essayer d'adapter ma commande avec mon script viewer.
étant donné que c'est mon fournisseur mumble qui ma fourni, dans l'intégralité:
<p><iframe src="url du viewer" align="middle" width="260" height="200"></iframe></p>



sinon, il y a un petit soucis, le widget n'apparait pas. je pense que ca vient de là ou tu as:
<div id="viewer">Ici apparaitra le widget</div>


je n'édite pas toute ma page, en fait, le widget a une position, définis par le site. j'ai juste à entrer le code html (4/5 ou plus si affinité ;) ) qui seras utilisé.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
5 août 2013 à 17:57
Je n'ai pas précisé dans le code la taille du div, mais normalement elle devrait s'adapter au contenu. Essaie de mettre du CSS, soit dans un <style> ou en inline (style="width: 260px;height: 200px").
0
Dijorxs Messages postés 5 Date d'inscription dimanche 4 août 2013 Statut Membre Dernière intervention 4 novembre 2014
5 août 2013 à 20:23
JE NOTE CE SUJET RÉSOLU CAR:

en fait je vient de me rendre compte que j'aurais pu faire n'importe quoi, il ne lit que du html. toutes insertion de JS, PHP ou encore AJAX et bloqué. Pour éviter tout problème.

mais le script offert par gravgun servira à plus d'un j'en suis sur!
0