jQuery网络摄像头刷新.等待请求完成


jQuery webcam refresh. Wait for request to finish

正如我之前所说的,我正在使用jQuery来刷新/更新网络摄像头图像。如果你想每隔5秒或10秒更新一次图像,这就很好了。但是当你要做一个10-15fps的流时,大多数浏览器都会遇到问题似乎。问题似乎是它在第一个请求完成之前发送了一个请求。是否有一种方法可以等待第一个请求完成,然后再发送一个新的更新请求的网络摄像头图像?因为对我来说,如果图像在服务器上有一点延迟,它似乎会堆积请求。

抱歉,如果我解释得有点糟糕,但是…我是挪威人。这不是最好的组合。:)

Webcam Image是一个单一的url例如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());
    })
}

当然!

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

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

每当getMyImage成功地从网络摄像头返回图像的src值时,它将立即出去并尝试检索新图像,但不是在加载前一个图像之前。

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