我正在开发一个实时媒体浏览/播放应用程序,该应用程序在可用时在浏览器中使用 <video>
对象进行播放。
我混合使用了直接的 javascript 和 jQuery,
我特别关心的是记忆。应用程序永远不会在窗口中重新加载,并且用户可以观看许多视频,因此随着时间的推移内存管理成为一个大问题。在今天的测试中,我看到内存配置文件随着每次后续加载而随着要流式传输的视频大小而跳跃,并且永远不会回落到基线。
我已经尝试了以下相同的结果:
1 - 清空包含创建元素的父容器,例如:
$(container_selector).empty();
2 - 暂停并删除匹配“视频”的子项,然后清空父容器:
$(container_selector).children().filter("video").each(function(){
this.pause();
$(this).remove();
});
$(container_selector).empty();
有没有其他人遇到过这个问题,有没有更好的方法来做到这一点?
原文由 sparkey0 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 DOM 结构中处理视频非常棘手。可能会导致浏览器崩溃。这是在我的项目中帮助我的解决方案。
这将重置一切,无声无息!
编辑:以下是标准中推荐的完整详细信息: https ://html.spec.whatwg.org/multipage/media.html#best-practices-for-authors-using-media-elements
希望它能解决您的疑问。