2011-11-01 156 views
0

正如我在谈论贝福我使用jQuery来刷新/更新摄像头图像。 如果你想每5或10秒更新一次图像,这种方法就行得通。 但是,当你要做10-15fps的流时,它似乎会遇到大多数浏览器 的问题。问题似乎是它发送了第一个请求。 有没有一种方法可以等待第一个请求完成,以便发送网络摄像头图像的新更新请求?因为对我来说,如果图像服务器上存在小延迟,似乎会叠加请求。jQuery摄像头刷新。等待请求完成

对不起,如果我解释了它有点糟糕,但...我是挪威和blode。不是最好的组合。 :)

网络摄像头图像是一个单一的网址 前。 http://www.ohoynothere.com/image.jpg

我使用的旧代码。

 $(document).ready(function() { 
     setInterval('updateCamera()',3000); 
}); 

function updateCamera() { 
    $('.online2').each(function() { 
     var url = $(this).attr('src').split('&')[0]; 
     $(this).attr('src', url + '&rand=' + new Date().getTime()); 
    }) 
} 

回答

1

肯定!

听起来像你最好的选择是使用jQuery.ajax()方法(http://api.jquery.com/jQuery.ajax/)或.get()方法来链接你的请求。基本上,您需要一个使用.ajax()调用来执行图像请求的JavaScript函数。在响应处理程序,只需再次调用该函数:

function getMyImage() { 
    jQuery.get(image_url, function(response) { 
    jQuery('#img-name').attr('src', response); 
    getMyImage(); 
    }); 
} 

每当getMyImage成功地从网络摄像头返回图像的src值,它会马上走出去,尝试检索一个新的形象,而不是之前的前一个是加载。

如果我不明白你想要做什么,请让我知道。了解更多关于如何检索网络摄像头图像(即每次返回相同的图像src等)会有所帮助。

+0

嘿, 谢谢你的回答。今晚晚些时候我会回家,并试一试,但我认为你明白了,它应该起作用。 “单一”摄像头图像只是通过普通的http地址获取。 (http://site.com/image.jpg?rnd=12345)。我也只是添加了一个随机数来欺骗缓存。 – Bulfen

+0

用我已经使用的代码更新了我的问题。 – Bulfen