我該如何去更新一個圖像,每隔幾秒在服務器上更新圖像,用戶不得不點擊刷新按鈕,我的第一個猜測是ajax,但我沒有真正工作與之前。有人能指出我正確的方向嗎?更新沒有頁面刷新的圖片
編輯:忘了提,該圖像是由Perl腳本生成一個.gif - 試圖通過URL來抓住它返回一個腳本
我該如何去更新一個圖像,每隔幾秒在服務器上更新圖像,用戶不得不點擊刷新按鈕,我的第一個猜測是ajax,但我沒有真正工作與之前。有人能指出我正確的方向嗎?更新沒有頁面刷新的圖片
編輯:忘了提,該圖像是由Perl腳本生成一個.gif - 試圖通過URL來抓住它返回一個腳本
看來你的Perl腳本有什麼問題。試圖通過URL訪問圖片應該會返回一個圖片。它應該返回二進制數據而不是腳本。您還應該將響應的Content-type標頭設置爲image/gif。在嘗試修正JavaScript代碼之前,驗證它是否確實返回二進制數據。
非常感謝你這是劇本。 – Mehran
只是使用JavaScript來更新IMG的src屬性。
HTML:
<img src="..." id="myImage" />
JS:
document.getElementById("myImage").src = "http://....";
如果你想要一個計時器,做這樣的事情:
setInterval(function() { ... }, 4000);
如果你有一個問題與緩存,將隨機查詢字符串添加到url的末尾:「?rnd = randomNumberHere」
這樣做
document.getElementById('yourimage').src = "url/of/image.jpg?random="+new Date().getTime();
這會改變你的形象標籤的src屬性(ID爲「yourimage」),並增加了一個隨機的查詢字符串給它,迫使瀏覽器每次你改變它的時間來重新加載圖像。
要重新加載圖像每隔5秒,做這樣的事情:
window.setInterval(function() { document.getElementById('yourimage').src = "url/of/image.jpg?random="+new Date().getTime(); }, 5000);
每X秒發送Ajax的服務器。如果從響應圖像的鏈接==上一個,沒有更新,如果鏈接新:$('img.class').attr('src','link');
沒有AJAX是必要的,只需更新圖像的src
屬性。但是,由於它具有相同的網址,因此您必須爲瀏覽器提供唯一的地址,以確保您不會從瀏覽器的緩存中加載舊圖像。您可以通過new Date().valueOf()
獲取當前日期的序列號並將其附加到URL作爲查詢字符串來保證唯一的圖像。
$("#dynamicImage").prop("src", "dynamicImage.jpg?" + new Date().valueOf());
您還可以使用new Date().getTime()
獲得的序列號,或者只是強迫日期到一個數字:+new Date()
要做到這一點對一個定時器使用setInterval()
。這將是完整的代碼,你可以只刪除一個腳本標籤中在你的頁面的<head>
:
$(function() {
var intervalMS = 5000; // 5 seconds
setInterval(function() {
$("#dynamicImage").prop("src", "dynamicImage.jpg?" + +new Date());
}, intervalMS);
});
添加的時間跨度,以URL爲我工作了圖像的結束。
var imagePath =「http://localhost/dynamicimage.ashx」;
$(「#imgImage」)。attr(「img」,imagePath + & ts「+(new Date()),toString());
你說」試圖通過url抓取它返回一個腳本「,但你暗示你可以重新加載通過刷新頁面的圖像,所以必須有一個URL來獲取圖像,請問你編輯你的問題,以包含你在查看源代碼時發現的img標籤的html? – gilly3
@ gilly3沒有頁面源代碼整個頁面只是一個由perl腳本生成的圖像,因此沒有img標籤,也沒有html。我想要將該圖像放入網頁並刷新它以更新從該圖像生成的圖像perl腳本 – Mehran