Comment irai à la mise à jour d'une image qui sera mise à jour sur un serveur toutes les quelques secondes avec l'utilisateur ayant à frapper le bouton de rafraîchissement, ma première devin était Ajax mais je n'ai pas vraiment travaillé avec elle avant. Quelqu'un pourrait-il me dire dans la bonne direction? P>
Edit: oublié de mentionner que l'image est une .gif générée par un script Perl - essayant de l'obtenir à partir de l'URL renvoie le script lui-même. P>
6 Réponses :
Utilisez simplement JavaScript pour mettre à jour la propriété SRC de l'IMG.
html: p> js: p> Si vous le souhaitez sur une minuterie, faites quelque chose comme ceci: p> Si vous avez un problème avec la mise en cache, ajoutez une chaîne de requête aléatoire à la fin de l'URL: "? RND = RandomNumberHere" P> P>
faire quelque chose comme ceci modifie l'attribut SRC de votre étiquette d'image (avec ID "YourImage") et ajoute une chaîne de requête aléatoire, forçant le navigateur pour recharger l'image chacune Time vous le modifiez. P> Pour recharger l'image toutes les 5 secondes, faites quelque chose comme: p>
Chaque X secondes Envoyer AJAX au serveur. Si le lien de l'image de réponse == Précédent, aucune mise à jour, si lien Nouveau: $ ('IMG.CLASS'). ATT ("SRC", "lien"); P> P>
Il semble qu'il y a quelque chose qui ne va pas avec votre script Perl. Essayer d'accéder à l'image par l'URL devrait renvoyer une image de toute façon. Il devrait renvoyer des données binaires et non un script. Vous devez également définir l'en-tête de type de contenu de la réponse à l'image / gif. Vérifiez s'il renvoie en effet des données binaires avant d'essayer de corriger votre code JavaScript. P>
Aucun ajax n'est nécessaire, il suffit de mettre à jour la propriété src code> de l'image. Mais, comme il a la même URL, vous devez donner au navigateur une adresse unique pour vous assurer de ne pas charger l'ancienne image du cache du navigateur. Vous pouvez garantir une image unique en obtenant le numéro de série de la date actuelle via
nouvelle date (). ValeurOf () Code> et Ajout à celle de l'URL en tant que QueryString.
$(function() {
var intervalMS = 5000; // 5 seconds
setInterval(function() {
$("#dynamicImage").prop("src", "dynamicImage.jpg?" + +new Date());
}, intervalMS);
});
Ajout d'une durée de l'heure à la fin de l'URL de l'image a fonctionné pour moi. p>
var imagePath = " http: //localhost/dynamicimage.ashx "; P>
$ ("# imgimage"). attr ("img", imagePath + & TS "+ (nouvelle date ()), Tostring ()); P>
Vous dites "essayer de l'attraper par URL renvoyer un script", mais vous impliquez que vous pouvez actuellement recharger l'image en rafraîchissant la page. Donc, il doit y avoir une URL qui récupère l'image. Voulez-vous modifier votre question pour inclure le HTML pour la balise IMG que vous trouvez lorsque vous voyez la source?
@ GILLY3 Il n'y a pas de source de page de page La page entière est simplement une image générée par un script Perl, il n'y a donc pas de balise IMG, il n'y a pas de HTML. Je voulais attraper cette image dans la mise en page Web et rafraîchir la mise à jour de l'image qui est générée à partir du script Perl.