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 :: Обновление фото после загрузки нового
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
Есть IP-камера. Хочу сделать на сайте трансляцию в виде обновляющихся фотографий с нее. Обновлять изображение через заданный интервал - не проблема, но хотелось бы другого. Опишу смысл или можно сказать необходимую последовательность действий.
1.Открывается страница и загружается фото с камеры
2.Скрипт ждет, когда фото загрузится полностью
3.Как только фото загрузилось, он отправляет запрос на получение нового фото
4.Тут проблема: надо дождаться загрузки фото из п.3 и только после этого обновить фото на странице.
Т.е. смысл всего этого каков: объем одного фото примерно 260-270 кб, а скорость интернета у всех разная и вот хотелось бы чтоб обновление фотографии происходило с частотой, зависящей только от скорости интернета, а не по времени.
Кое-какая идея есть:
Два дива (один невидимый), туда загружаем первоначальное фото, как только оно загрузилось, копируем его содержимое во второй див и грузим новое изображение в 1-й, и так по кругу.
Только вот не знаю на сколько это оправдано (такое извращение) и будет ли работать вообще.
Pavelbeginner
Отправлено: 15 Июля, 2011 - 15:10:35
Частый посетитель
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
Я буквально неделю назад создал похожую тему, тема касалась не камеры, а того можно ли как-нибудь узнать, что изображение загружено, но мне никто не ответил, можете посмотреть мою тему, она почти свежая.
А на счет дивов Вы зря так извращаетесь. Достаточно просто меняет атрибут src у тега img.
demot
Отправлено: 15 Июля, 2011 - 15:12:38
Частый гость
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
Pavelbeginner пишет:
Достаточно просто меняет атрибут src у тега img
Тогда неизбежно мерцание фото, при медленном интернет-соединении (Добавление)
Pavelbeginner пишет:
можете посмотреть мою тему, она почти свежая.
уже почитал, до того как постить свою
Pavelbeginner
Отправлено: 15 Июля, 2011 - 15:36:14
Частый посетитель
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
Цитата:
Тогда неизбежно мерцание фото, при медленном интернет-соединении
Нет. Я предлагаю другой способ, собственно, который скорее всего используется разными плагинами. Скорее всего нельзя никак отследить загружено ли изображение или нет. Поэтому делайте так:
создайте на странице два тега img. У одного тега img пропишите свойство display:none; Затем меняйте у этого тега атрибут src на нужное фото. Браузер загрузив изображение, закэширует его. Затем поменяйте атрибут src у второго тега img, на путь к тому же изображению, что и в первом теге img. И так через определенные интервалы времени, например, 2 секунды.
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
Pavelbeginner, ну это в принципе то же самое что я и предлагал, я только собирался менять содержимое дивов, а вы атрибут src
Но проблема, к сожалению, все же остается - получить статус состояния загрузки картинки.
Просто по моей задумке, если интернет-канал хороший, то фотки будут грузится быстро (почти видео), а если плохой, то неважно насколько, фотка будет менятся только после полной ее загрузки.
join
Отправлено: 15 Июля, 2011 - 16:15:42
Гость
Покинул форум
Сообщений всего: 91
Дата рег-ции: Февр. 2011
Помог: 1 раз(а)
в галереях js фреймворков - реализовано то, что вам необходимо.
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
Цитата:
в галереях js фреймворков - реализовано то, что вам необходимо.
Не существует в фрейморках галерей. Фреймворк это лишь набор инструментов, а галелеря это уже плагин, сделанный с использованием фрейморка. Ну это так, просто для корректности, а не чтобы выпендриться.
Да и вопрос состоит в другом, а именно: как узнать, что изображение загружено. И скорее всего нельзя никак узнать, поэтому ваши галереи используют обычные задержки и это никак не решает вопрос, который поставил автор темы.
LIME
Отправлено: 15 Июля, 2011 - 16:29:11
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
я могу ошибаться но я смутно припоминаю что событие window.onload происходит при полной загрузке ...и всех картинок в том числе
Pavelbeginner
Отправлено: 15 Июля, 2011 - 16:36:20
Частый посетитель
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
LIME, если мне память не изменяет, то это событие относится к тегу body, ну да не суть как важно. В любом случае это лишь на раз, а как отследить дальнейшие загрузки изображений?
demot
Отправлено: 15 Июля, 2011 - 16:37:18
Частый гость
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
LIME, это так, но оно выполняется при загрузке страницы, но если обновить одно изображение, то данное событие уже не выполнится (Добавление)
Pavelbeginner
Опередил
LIME
Отправлено: 15 Июля, 2011 - 16:42:01
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Pavelbeginner пишет:
это событие относится к тегу body
по моему document.onload к body...
как вариант открывать картинку в окошке или фрэйме с скриптом
OrmaJever
Отправлено: 15 Июля, 2011 - 16:47:52
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
я конешно не уверен потому что не могу проверить, но может так
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 15 Июля, 2011 - 16:50:44
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
OrmaJever была такаяже мысль...но есть ли у каждого элемента событие онлоад?
задал вопрос на тематическом форуме жду ответа..
самому интересно стало (Добавление)
OrmaJever пишет:
У кого очень медленый интернет - проверьте
может вставите картинку после таймера?
мне некогда проверять
Pavelbeginner
Отправлено: 15 Июля, 2011 - 16:57:34
Частый посетитель
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
Цитата:
я конешно не уверен потому что не могу проверить, но может так
врядтли проканает, но попробывать стоит.
Цитата:
как вариант открывать картинку в окошке или фрэйме с скриптом
Идея неплохая и, пожалуй, единственно возможная.
demot, пусть скрипт генерит фреймы с событием onload. Внутри фреймов размещай нужное изображением и по событию меняй путь к картинке на путь, который у картинки внутри загруженного фрейма. (Добавление)
То есть загружай документ с изображением. Затем скриптом через ajax запроси кусок html, внутри которого есть фрейм, а внутри фрейма есть тег img с путем к картинки. У фрейма свойство display:none; Вставь полученный html в документ. У фрейма пусть стоит onLoad и по событию этому в нужной картинке меняй src
OrmaJever
Отправлено: 15 Июля, 2011 - 17:07:50
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
А некому не приходило в голову посмотреть как это реализировано в галереях? В каких галереях есть такая загрузка?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.