тестируя мобильное веб-приложение Safari, я обнаружил, что у меня изображение в теге img src динамически меняется. Этот src ссылается на URL-адрес, который генерирует потоковый mjpeg с MIME-типом multipart / x-mixed-replace. Изменение src замечает, что браузер не закрывает соединение с сервером, поэтому сервер продолжает обработку, как будто просит следовать за потоковым клиентом, а этого делать не следует, и этого не существует в DOM. Я уже пытаюсь использовать методы удаления и очистки jquery API и присваивать src значение null или пустую строку, не заставляя их вести себя так, как в классических браузерах. Можно ли этого добиться? Спасибо
Safari открывает и закрывает img MIME-тип multipart / x-mixed-replace потоковую передачу по запросу
Ответы (1)
Если вы все еще ищете ответ, у меня была такая же проблема в более старой версии chrome (не тестировалось с сафари, но может быть тем же решением), и единственное, что у меня сработало, это вызов window.stop(). Это остановит все соединения на странице, поэтому, если есть вещи, которые вы не хотите останавливать, вы можете поместить свое изображение в iframe и вызвать остановку в окне iframe.
Добавьте iframe:
<iframe id="image" src="" seamless="seamless"><p>Your browser does not support iframes.</p></iframe>
Добавьте изображение:
var frame = document.getElementById('image'); var img = document.createElement("img"); img.src = myImgSource; frame.contentDocument.body.appendChild(img);
И когда вы хотите изменить img src, вызовите эту функцию stopLoad для iframe перед:
function stopLoad(frame) { var cw = frame.contentWindow; if (cw.stop) { cw.stop(); } else { cw = frame.contentDocument; if (cw.execCommand) { cw.execCommand("Stop", false); } } }
Возможно, вам потребуется добавить стиль к iframe и его содержимому, чтобы изображение выглядело так, как если бы оно было прямо в главном окне.
person
Skiing-Marmot
schedule
01.06.2015