从DOM中删除后视频仍然播放,如何完全消除?

11 浏览
0 Comments

从DOM中删除后视频仍然播放,如何完全消除?

我在我的网站上有一个容器,当点击某种类型的链接时,我会通过jQuery Ajax/XHR 动态注入新内容。对于某些页面,该容器包含一个循环播放多个HTML5 元素的网格。然而,在一些XHR请求替换容器内的内容之后,我遇到了性能下降的问题。当我取消静音视频后,我通过喇叭传出的音频才意识到这些视频实际上仍在播放,即使它们已经从DOM中完全移除(这意味着在容器内进行了一些XHR替换后,仍然有大量的视频在播放,而这些视频实际上已经不在DOM中)。我尝试了一些方法,但似乎都没有帮助:

  • 在进行XHR请求之前,使用jQuery.remove()DOM中删除所有视频
  • 在加载新内容之前,通过Javascript暂停视频

这似乎只是随机起作用,这让我疯狂。有时,一些或所有的视频在关闭后仍然播放,并与新的视频内容重叠。而且,它们在Chrome DevTool的网络选项卡中也没有显示出来...

我觉得由于缓冲的问题,传统的DOM查询和操作在这里不起作用...有什么提示可以在我的XHR请求前函数中加入,以确保从DOM中(以及缓冲区和其他地方)完全删除任何当前的内容,换句话说,是100%被删除的?

编辑:这是我问题的简化演示,可以尝试点击链接以交换具有ID #contentdiv 的内容 http://www.letrip.de/html5video-problem/

您可以通过在URL中添加/js/app.js来查看Javascript代码。

0