Safari открывает и закрывает img MIME-тип multipart / x-mixed-replace потоковую передачу по запросу

тестируя мобильное веб-приложение Safari, я обнаружил, что у меня изображение в теге img src динамически меняется. Этот src ссылается на URL-адрес, который генерирует потоковый mjpeg с MIME-типом multipart / x-mixed-replace. Изменение src замечает, что браузер не закрывает соединение с сервером, поэтому сервер продолжает обработку, как будто просит следовать за потоковым клиентом, а этого делать не следует, и этого не существует в DOM. Я уже пытаюсь использовать методы удаления и очистки jquery API и присваивать src значение null или пустую строку, не заставляя их вести себя так, как в классических браузерах. Можно ли этого добиться? Спасибо


person austin    schedule 08.05.2015    source источник


Ответы (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