【问题标题】:How to go about freeing an HTML5 video from memory?如何从内存中释放 HTML5 视频?
【发布时间】:2017-11-23 07:24:49
【问题描述】:

我有一个使用大量视频的页面,我想在视频暂停时从内存中清除这些视频,但我不知道该怎么做。我尝试使用:

 function pausevideo1(){
     var video = document.getElementById("video1");
     video.pause();
     video.src =""
 }

但这会将视频从页面中完全清除,因此无法再次播放。是否可以在暂停时清除视频并在激活时重新加载?

【问题讨论】:

  • 这样做有什么意义?
  • 您不能对脚本中的浏览器内存做任何事情。浏览器处理它自己的垃圾回收
  • 我认为这是在浏览器域中,它是最好的,不要认为开发人员应该搞砸这个
  • 但如果您的页面上有一堆视频,您会发现并且也许应该能够控制一次只播放一个视频,而不是一堆!

标签: javascript html video


【解决方案1】:

在清除视频的src之前,将src保存在元素的dataset中,并在用户点击播放时检索:

function pausevideo1(){

     var video = document.getElementById("video1");

     video.pause();

     video.dataset.vidSrc = video.src; // save src

     video.src ="";
}

function loadVideo(id) {

    var video = document.getElementById(id);

    video.src = video.dataset.vidSrc; // retrieve src
}

注意:dataset在IE > 10中是兼容的。如果你需要一个兼容旧浏览器的解决方案,那么你可以使用类似的解决方案,但使用setAttribute和@987654329 @ 将src 保存到元素中。

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 2015-07-01
    • 2022-01-11
    • 2012-02-02
    相关资源
    最近更新 更多