Потоковая веб-камера - потоковая передача изображений в Image Control через определенные интервалы - PullRequest
0 голосов
/ 20 июля 2010

У меня проблема с тем, что пользователи с медленным подключением не получают мой фид изображений должным образом.

Я отправляю им новые изображения каждую секунду в графический блок на панели Ajax Update, используя Ajax Timer.

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

Есть идеи?

1 Ответ

1 голос
/ 20 июля 2010

Использовать событие OnLoad image в JavaScript.Другими словами, не загружайте новое изображение, пока последнее не будет загружено полностью.

Возможно, вам не следует использовать панель обновления.Тег изображения (включая его размер, внешний вид и положение) остается прежним;это источник, который меняется.Вместо того, чтобы обновлять все, я предлагаю сделать следующее на стороне клиента :

  1. В начале загрузите первое изображение (без панели обновления).
  2. Добавьте слушателя к событию OnLoad в <img /> на стороне клиента.
  3. Когда изображение полностью загрузится, перезагрузите его, запросив у сервера более свежее изображение.Например, вы можете рассмотреть возможность использования страницы ASP.NET Camera.aspx, которая обслуживает самые последние изображения, полученные с камеры.Чтобы убедиться, что страница действительно запрашивается, измените свойство src элемента <img /> на Camera.aspx?t=1, Camera.aspx?t=2 и т. Д.

На стороне сервера (поэтому здесь нет JavaScript), захваченные изображения хранятся в базе данных, поэтому Camera.aspx будет запрашивать последнюю сохраненную запись, извлекать ее и отправлять непосредственно клиенту (указав соответствующий Response.ContentType и используя Response.OutputStream).

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

...