我正在构建一个页面来显示一堆网络摄像头图像并定期更新它们,以便该页面可用于一目了然的监控。但是,我遇到了定期重新加载工作的问题。我的代码看起来像:
<div class='cameras'>
<div class='camera'>
<h4>Desk</h4>
<img height='240' src='http://somehost/cameras/cam0/lastsnap.jpg' width='320'>
</div>
<div class='camera'>
<h4>Main Room</h4>
<img height='240' src='http://somehost/cameras/cam1/lastsnap.jpg' width='320'>
</div>
<div class='camera'>
<h4>Studio</h4>
<img height='240' src='http://somehost/cameras/cam2/lastsnap.jpg' width='320'>
</div>
</div>
理想情况下,我希望每隔几秒钟从指定的URL重新加载这些内容,而不必为每个摄像头生成单独的JS。我已经使用了jQuery来处理其他一些零碎的东西,所以坚持下去会很棒 - 然后,一个普通的JS解决方案也很好。
任何想法,StackOverflow JS众神?
答案 0 :(得分:7)
好的,解决了这个问题:
function refreshCameras() {
$('.camera img').attr('src', function(i, old) { return old.replace(/\?.+/,"?i=" + (Math.random()*1000)); });
setTimeout(refreshCameras, 1000);
}
function refreshCamerasFirst() {
$('.camera img').attr('src', function(i, old) { return old + "?i=" + (Math.random()*1000); });
setTimeout(refreshCameras, 1000);
}
$(function() {
setTimeout(refreshCamerasFirst, 1000);
});
将所有img元素放在“相机”类中,并通过添加到URL的随机数来每秒刷新缓存,每次重新加载都会更改,而不会使用regexp替换现有号码。
答案 1 :(得分:1)
为图像生成图像源[定期的时间间隔]
var img = []; //just an image source. you can write your own code for image source
img[0] ='http://site.com/pics/pic.jpg';
img[1] ='http://site.com/pics/pic1.jpg';
img[2] ='http://site.com/pics/pic2.jpg';
img[3] ='http://site.com/pics/pic3.jpg';
$(function() {
$.each(img, function(i, val) {
var images = new Image();
images.src = val; //preloading images for my example purpose
});
function reload() {
$('img.alter').each(function() { //generate a url for image source.
var src = img[Math.floor(Math.random() * img.length)];
$(this).attr('src',src);
});
}
setInterval(reload , 5000)
});
<强> Test it here 强>
PS :此技术不需要重新加载整个页面
答案 2 :(得分:0)
尝试重写您页面上的元标记
<meta http-equiv="Refresh" content="2; URL=yourpage.php">
使用text.Checkout with images
很酷答案 3 :(得分:0)
如果您想在指定的持续时间内刷新页面,您也可以在html中执行此操作
将此标记添加到页眉标记
<meta http-equiv="refresh" content="1">
这里的内容是以秒为单位的持续时间 请参阅此
http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm