Safari 打开和关闭 img MIME 类型 multipart / x-mixed-replace streaming on demand

Safari open and close img MIME type multipart / x-mixed-replace streaming on demand

测试移动版 Safari Web 应用程序时,我发现您的标签 img src 中的图像动态变化。此 src 引用 url 生成具有 MIME 类型 multipart / x-mixed-replace 的流式 mjpeg。更改 src 通知浏览器不会关闭与服务器的连接,因此服务器继续处理,就像请求跟随流媒体客户端一样,不应该这样做,并且 DOM 中不存在。我已经尝试使用方法 remove 和 empty jquery API 并将 src 分配给 null 或空字符串,而不让它们像经典浏览器那样运行。有可能实现这一目标吗?谢谢

如果您仍在寻找答案,我在 chrome 的旧版本中遇到了同样的问题(未使用 safari 进行测试,但可能是相同的解决方案),唯一对我有用的是调用 window.stop()。 这将停止页面中的所有连接,因此如果有您不想停止的内容,您可以将图像放在 iframe 中并在 iframe 上调用停止 window.

  • 添加 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时,在iframe之前调用这个stopLoad函数:

    function stopLoad(frame) {
       var cw = frame.contentWindow;
       if (cw.stop) {
          cw.stop();
       } else {
          cw = frame.contentDocument;
          if (cw.execCommand) {
             cw.execCommand("Stop", false);
          }
       }
    }
    

您可能需要向 iframe 及其内容添加一些样式,使图像看起来就像直接在主框架中一样 window。