UIWebView и оставить -в живых?

Я настраиваю UIWebViewдля отображения содержимого веб-камеры через URL-адрес, который извлекает MPJEG -ручей.

Я обнаружил, что если бы я хотел переключиться на другую камеру, это выглядело бы более плавно, если бы я не сбрасывал все содержимое UIWebView, а вместо этого устанавливал функцию javascript на странице, которую я загружал в нее, чтобы замените содержимое изображения, например:

<img id='iImage' src='about:blank'>
<script type='text/javascript'>
function show(url)
{
    iImage.src = url;
}
</script>

Если бы я этого не делал, каждый раз, когда я переключался на новый URL-адрес, UIWebViewстановился белым на секунду или две, пока новый контент не был готов к отображению, с приведенный выше код просто заменяет содержимое напрямую, без белого цвета.

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

Это наводит меня на мысль, что:

  1. Рассматриваемая камера может обслуживать только 3 потока одновременно
  2. Изменение атрибута srcв теге <img...>не закрывает предыдущий поток

Может это быть связано с keepalive? Может ли система браузера webkit сохранить предыдущие потоки, даже если я перестал показывать их в теге <img...>?

В основном, чтобы воспроизвести, я могу сделать это:

  1. Настроить вышеупомянутое содержимое вUIWebView
  2. Вызовите это 4 раза:wv.EvaluateJavascript("show(url)")

На 4-м вызове я получаю синий вопросительный знак посередине.

Может ли -остаться в живых быть виновником? И если да, то могу ли я это контролировать?

10
задан Lasse V. Karlsen 6 May 2012 в 12:53
поделиться