Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2012, 00:10   #1
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
Стрелка Веб-камера на сайт. Ajax подгрузка изображений

Доброго времени суток колеги.
Пишу скрипт для просмотра изображений с веб-камеры.
Проблема в том что оно не показывает изображения, и происходят бесконечные рефреши.

Код:
$(document).ready(function()
{
	var id;
	var conteiner;
	var timerval = 1000;
	var timeout_id;
	
	function Int(){
		$('.no_cam').css('display','none');
		$('.cam').css('display','none');
		conteiner = $('.crop_img img');
		id = conteiner.attr('rel');
		//setupTimer();
		Load();
	}
	function Load(){
		
		conteiner.attr('src', 'http://****/cam/realtime.html?id='+id);
		conteiner.attr('onload', setupTimer);
	}
	
	function setupTimer()
	{
                           clearTimeout(timeout_id);
		timeout_id = window.setTimeout(Load, timerval);
	}
	function ChangeFPS (i){
		timerval=i;
		setupTimer();
	}
	
	Int();
});
Код:
<select onchange="ChangeFPS(this.options[this.selectedIndex].value)">
		<option value="40">25 fps</option>
		<option value="100">10 fps</option>
		<option value="200">5 fps</option>
		<option value="1000">1 fps</option>
		<option value="2000">2 s</option>
	</select>
Код:
<div class='crop_img'><img src="/public/upload/test/DVEX_B00D00C00.jpg" width='540px' height='430px' border='0' rel='1' /></div>
Как быть? зарание благодарен
dem66 вне форума Ответить с цитированием
Старый 24.07.2012, 10:45   #2
chyvakoff
Пользователь
 
Аватар для chyvakoff
 
Регистрация: 10.12.2011
Сообщений: 91
По умолчанию

conteiner.attr('src', 'http://****/cam/realtime.html?id='+id); - тут что происходит?
chyvakoff вне форума Ответить с цитированием
Старый 24.07.2012, 11:00   #3
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

как что, берем и меняем ссылку на изображение для img.
Уже написал готовый скрипт. а тот что сейчас сдесь запрашивал изображение у себя на сервере а тот в свою очередь долбился курлом на сайт с камерой, так как раньше там была авторизация.
Теперь пытаюсь ускорить этот скрипт:
Код:

	var id;
	var conteiner;
	var timerval = 100;
	var isOpen = 0;
	var timeout_id;
	var Err = 0;
	var alertTimerId = 0;
	var src;
	var stop = 0;
	var first = 1;
	var url = null;
	
	isOpen = Math.round(1000000+(Math.random() * 1000000));
	
	tmpImage = new Image;
	
	function Int(){
		$('.cam').css('visibility','hidden');
		conteiner = $('.crop_img img');
		id = conteiner.attr('rel');
		src = conteiner.attr('src');
		
		switch(id){
		   case '1':
				 url = 'http://***:7676/DVEX_B00D00C00.jpg';
		   break
		   case '2':
				 url = 'http://***:7676/DVEX_B00D00C03.jpg';
		   break
		   case '3':
				 url = 'http://***:7676/DVEX_B00D00C06.jpg';
		   break
	   }

		var play = $('.play');
		var pause = $('.pause');
		var cam_block = $('.cam_block');
		play.css('visibility','visible');
			play.click(function(){
				play.css('visibility','hidden');
				if(stop == 1){
					stop = 0;
					first = 1;
				}
				Load();

				cam_block.mouseenter(function(){
					if(Err==0){
						if(play.css('visibility')!='visible'){
							pause.css('visibility','visible');
						}
					}
				});
				cam_block.mouseleave(function(){
					if(Err==0){
						if(play.css('visibility')!='visible'){
							pause.css('visibility','hidden');
						}
					}
				});
			});
	}
	
	
	function Load(){
		conteiner.attr('src', url+'?t='+isOpen);
		//conteiner.attr('src', '/cam/realtime.html?id='+id+'&t='+isOpen);
		conteiner.attr('onload', firstImage);
	}
	
	function doImage()
	{
		//console.log('doImage: '+timeout_id+' : '+stop);
		if(stop!=1){
			Err = 0;
			conteiner.attr('src', tmpImage.src);
			setupTimer();
		}else{
			clearTimeout(timeout_id);
		}
	}
	
	function loadNextImage()
	{
		//console.log('loadNextImage: ');
		isOpen++;
		tmpImage.onerror = Error_l;
		tmpImage.src = url+'?t='+isOpen;
	}
	
	function firstImage()
	{
		//console.log('firstImage: '+first);
		if (first == 1)
		{
			first = 0;
			isOpen++;
			tmpImage.onload = doImage;
			tmpImage.onerror = Error_l;
			tmpImage.src = url+'&t='+isOpen;
		}
	}
	
	function setupTimer()
	{
		clearTimeout(timeout_id);
		//console.log('TIMER: '+timerval);
		timeout_id = setTimeout(loadNextImage, timerval);
	}
	function Clear_timer(){
		//console.log('Clear_timer: '+timeout_id);
		stop = 1;
		first = 1;
		$('.pause').css('visibility','hidden');
		$('.play').css('visibility','visible');
		$('.crop_img img').attr('onload', '');
		clearTimeout(timeout_id);
	}
	
	function Error_l()
	{
		//console.log('ERROR: '+Err);
		if(Err<3){
			Err++;
			clearTimeout(timeout_id);
			timeout_id = setTimeout(loadNextImage, timerval);
		}else{
			clearTimeout(timeout_id);
			$('.no_cam').css('visibility','visible');
			$('.cam').css('visibility','visible');
			var repeat = $('.repeat');
			repeat.css('visibility','visible');

			conteiner.attr('src', src);
			
			repeat.click(function(){
				Load();
			});
		}
	}
	
	function ChangeFPS(i){
		timerval=i;
		setupTimer();
	}
$(document).ready(function()
{
	Int();
});
dem66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
веб-камера вместо мыши gunguru Помощь студентам 5 20.04.2012 17:21
Ajax. Подгрузка контента Избранный JavaScript, Ajax 0 04.01.2012 13:40
Есть веб-камера от ноута Altera Компьютерное железо 10 07.08.2011 13:06
НЕ РАБОТАЕТ ВЕБ-КАМЕРА лабинск Компьютерное железо 28 28.07.2010 14:08
веб камера CNR-CP5G РаТи Компьютерное железо 0 13.03.2010 16:15