Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обновление фото после загрузки нового

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
demot
Отправлено: 15 Июля, 2011 - 14:55:04
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




Есть IP-камера. Хочу сделать на сайте трансляцию в виде обновляющихся фотографий с нее. Обновлять изображение через заданный интервал - не проблема, но хотелось бы другого. Опишу смысл или можно сказать необходимую последовательность действий.

1.Открывается страница и загружается фото с камеры
2.Скрипт ждет, когда фото загрузится полностью
3.Как только фото загрузилось, он отправляет запрос на получение нового фото
4.Тут проблема: надо дождаться загрузки фото из п.3 и только после этого обновить фото на странице.

Т.е. смысл всего этого каков: объем одного фото примерно 260-270 кб, а скорость интернета у всех разная Улыбка и вот хотелось бы чтоб обновление фотографии происходило с частотой, зависящей только от скорости интернета, а не по времени.

Кое-какая идея есть:
Два дива (один невидимый), туда загружаем первоначальное фото, как только оно загрузилось, копируем его содержимое во второй див и грузим новое изображение в 1-й, и так по кругу.
Только вот не знаю на сколько это оправдано (такое извращение) и будет ли работать вообще.
 
 Top
Pavelbeginner
Отправлено: 15 Июля, 2011 - 15:10:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Я буквально неделю назад создал похожую тему, тема касалась не камеры, а того можно ли как-нибудь узнать, что изображение загружено, но мне никто не ответил, можете посмотреть мою тему, она почти свежая.
А на счет дивов Вы зря так извращаетесь. Достаточно просто меняет атрибут src у тега img.
 
 Top
demot
Отправлено: 15 Июля, 2011 - 15:12:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




Pavelbeginner пишет:
Достаточно просто меняет атрибут src у тега img

Тогда неизбежно мерцание фото, при медленном интернет-соединении
(Добавление)
Pavelbeginner пишет:
можете посмотреть мою тему, она почти свежая.

уже почитал, до того как постить свою Улыбка
 
 Top
Pavelbeginner
Отправлено: 15 Июля, 2011 - 15:36:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Цитата:
Тогда неизбежно мерцание фото, при медленном интернет-соединении


Нет. Я предлагаю другой способ, собственно, который скорее всего используется разными плагинами. Скорее всего нельзя никак отследить загружено ли изображение или нет. Поэтому делайте так:
создайте на странице два тега img. У одного тега img пропишите свойство display:none; Затем меняйте у этого тега атрибут src на нужное фото. Браузер загрузив изображение, закэширует его. Затем поменяйте атрибут src у второго тега img, на путь к тому же изображению, что и в первом теге img. И так через определенные интервалы времени, например, 2 секунды.

(Отредактировано автором: 15 Июля, 2011 - 15:37:39)

 
 Top
demot
Отправлено: 15 Июля, 2011 - 16:01:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




Pavelbeginner, ну это в принципе то же самое что я и предлагал, я только собирался менять содержимое дивов, а вы атрибут src Улыбка

Но проблема, к сожалению, все же остается - получить статус состояния загрузки картинки.

Просто по моей задумке, если интернет-канал хороший, то фотки будут грузится быстро (почти видео), а если плохой, то неважно насколько, фотка будет менятся только после полной ее загрузки.
 
 Top
join
Отправлено: 15 Июля, 2011 - 16:15:42
Post Id



Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Февр. 2011  


Помог: 1 раз(а)




в галереях js фреймворков - реализовано то, что вам необходимо.


-----
- "Holy shit!" -девиз Холливуда
- "Hello world " -девиз PhP
 
 Top
Pavelbeginner
Отправлено: 15 Июля, 2011 - 16:27:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Цитата:
в галереях js фреймворков - реализовано то, что вам необходимо.


Не существует в фрейморках галерей. Фреймворк это лишь набор инструментов, а галелеря это уже плагин, сделанный с использованием фрейморка. Ну это так, просто для корректности, а не чтобы выпендриться.

Да и вопрос состоит в другом, а именно: как узнать, что изображение загружено. И скорее всего нельзя никак узнать, поэтому ваши галереи используют обычные задержки и это никак не решает вопрос, который поставил автор темы.
 
 Top
LIME
Отправлено: 15 Июля, 2011 - 16:29:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




я могу ошибаться но я смутно припоминаю что событие window.onload происходит при полной загрузке ...и всех картинок в том числе
 
 Top
Pavelbeginner
Отправлено: 15 Июля, 2011 - 16:36:20
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




LIME, если мне память не изменяет, то это событие относится к тегу body, ну да не суть как важно. В любом случае это лишь на раз, а как отследить дальнейшие загрузки изображений?
 
 Top
demot
Отправлено: 15 Июля, 2011 - 16:37:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010  


Помог: 3 раз(а)




LIME, это так, но оно выполняется при загрузке страницы, но если обновить одно изображение, то данное событие уже не выполнится
(Добавление)
Pavelbeginner Улыбка
Опередил
 
 Top
LIME
Отправлено: 15 Июля, 2011 - 16:42:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Pavelbeginner пишет:
это событие относится к тегу body
по моему document.onload к body...
как вариант открывать картинку в окошке или фрэйме с скриптом
 
 Top
OrmaJever
Отправлено: 15 Июля, 2011 - 16:47:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




я конешно не уверен потому что не могу проверить, но может так
CODE (htmlphp):
скопировать код в буфер обмена
  1. <img src="img.png" onclick="next(this)" onload="alert()">
  2. <script>
  3. function next(elem) {
  4.         elem.src = "img1.jpg";
  5.         elem.onload = 'alert()';
  6. }

У кого очень медленый интернет - проверьте


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LIME
Отправлено: 15 Июля, 2011 - 16:50:44
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




OrmaJever была такаяже мысль...но есть ли у каждого элемента событие онлоад?
задал вопрос на тематическом форуме жду ответа..
самому интересно стало
(Добавление)
OrmaJever пишет:
У кого очень медленый интернет - проверьте

может вставите картинку после таймера?
мне некогда проверять
 
 Top
Pavelbeginner
Отправлено: 15 Июля, 2011 - 16:57:34
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Цитата:
я конешно не уверен потому что не могу проверить, но может так


врядтли проканает, но попробывать стоит.

Цитата:
как вариант открывать картинку в окошке или фрэйме с скриптом


Идея неплохая и, пожалуй, единственно возможная.

demot, пусть скрипт генерит фреймы с событием onload. Внутри фреймов размещай нужное изображением и по событию меняй путь к картинке на путь, который у картинки внутри загруженного фрейма.
(Добавление)
То есть загружай документ с изображением. Затем скриптом через ajax запроси кусок html, внутри которого есть фрейм, а внутри фрейма есть тег img с путем к картинки. У фрейма свойство display:none; Вставь полученный html в документ. У фрейма пусть стоит onLoad и по событию этому в нужной картинке меняй src
 
 Top
OrmaJever
Отправлено: 15 Июля, 2011 - 17:07:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




А некому не приходило в голову посмотреть как это реализировано в галереях? В каких галереях есть такая загрузка?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB