2011-11-01 46 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