Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除html5媒体元素是否也会删除视频/音频使用的内存?_Javascript_Html_Memory Management_Html5 Video_Html5 Audio - Fatal编程技术网

Javascript 删除html5媒体元素是否也会删除视频/音频使用的内存?

Javascript 删除html5媒体元素是否也会删除视频/音频使用的内存?,javascript,html,memory-management,html5-video,html5-audio,Javascript,Html,Memory Management,Html5 Video,Html5 Audio,删除html5媒体DOM元素(视频或音频)是否也会释放该元素表示的媒体所使用的任何内存?(假设代码中也没有引用)当对象没有更多引用时,会对其进行垃圾收集。 如果从DOM中删除该元素,如果没有指向它的变量,它将从内存中清除 在本例中,变量“img”仍然保存对象。因此,当我们从DOM中删除它时,它不会从内存中清除 img.parentNode.removeChild(img); 我们可以再次将其附加到DOM中 document.body.appendChild(img); 上面提到的是关于记忆

删除html5媒体DOM元素(视频或音频)是否也会释放该元素表示的媒体所使用的任何内存?(假设代码中也没有引用)

当对象没有更多引用时,会对其进行垃圾收集。
如果从DOM中删除该元素,如果没有指向它的变量,它将从内存中清除

在本例中,变量“img”仍然保存对象。因此,当我们从DOM中删除它时,它不会从内存中清除

img.parentNode.removeChild(img);
我们可以再次将其附加到DOM中

document.body.appendChild(img);


上面提到的是关于记忆的。在任何情况下,是否从缓存中清除文件都由浏览器决定。

当没有更多引用对象时,对象将被垃圾收集。
如果从DOM中删除该元素,如果没有指向它的变量,它将从内存中清除

在本例中,变量“img”仍然保存对象。因此,当我们从DOM中删除它时,它不会从内存中清除

img.parentNode.removeChild(img);
我们可以再次将其附加到DOM中

document.body.appendChild(img);


上面提到的是关于记忆的。在任何情况下,是否从缓存中清除文件都由浏览器决定。

来自规范:

4.8.10.16作者使用媒体元素的最佳实践

在小型设备(如机顶盒或手机)上播放音频和视频资源通常受到设备中有限硬件资源的限制。例如,一台设备可能只支持三个同时播放的视频。因此,在播放完媒体元素后释放它们所持有的资源是一种很好的做法,可以非常小心地删除对该元素的所有引用并允许对其进行垃圾收集,或者更好的做法是删除该元素的src属性和任何源元素子体,并调用元素的load()方法

类似地,当播放速率不完全为1.0时,硬件、软件或格式限制可能会导致视频帧被丢弃,音频变得断断续续或静音


来源:

来自规范:

4.8.10.16作者使用媒体元素的最佳实践

在小型设备(如机顶盒或手机)上播放音频和视频资源通常受到设备中有限硬件资源的限制。例如,一台设备可能只支持三个同时播放的视频。因此,在播放完媒体元素后释放它们所持有的资源是一种很好的做法,可以非常小心地删除对该元素的所有引用并允许对其进行垃圾收集,或者更好的做法是删除该元素的src属性和任何源元素子体,并调用元素的load()方法

类似地,当播放速率不完全为1.0时,硬件、软件或格式限制可能会导致视频帧被丢弃,音频变得断断续续或静音


来源:

似乎存在一种特殊情况,即视频/音频元素未附加到页面且没有引用,但仍在播放。所以你至少必须删除所有引用并暂停它。@brianchirls,同意。这是内存泄漏。元素被创建,然后它在DOM周围浮动,不可能移除或控制它。应该避免编写这样的代码。我感谢您的回答。在我的问题中,当我说“任何记忆”时,我是明确的。我不想争论缓存是否与内存相同,但我的意思是,创建标记时通常使用的任何内存使用。也许我可以编辑这个问题来澄清这一点?我愿意听取建议。我认为了解视频或音频文件在其DOM表示形式消失后是否会挂起很重要,而且很难找到相关信息。缓存存储在磁盘上,通常称为存储,而不是内存。我想我已经回答了这两个问题。似乎有一种特殊情况,视频/音频元素没有附加到页面上,也没有引用,但它仍在播放。所以你至少必须删除所有引用并暂停它。@brianchirls,同意。这是内存泄漏。元素被创建,然后它在DOM周围浮动,不可能移除或控制它。应该避免编写这样的代码。我感谢您的回答。在我的问题中,当我说“任何记忆”时,我是明确的。我不想争论缓存是否与内存相同,但我的意思是,创建标记时通常使用的任何内存使用。也许我可以编辑这个问题来澄清这一点?我愿意听取建议。我认为了解视频或音频文件在其DOM表示形式消失后是否会挂起很重要,而且很难找到相关信息。缓存存储在磁盘上,通常称为存储,而不是内存。我想我已经回答了这两个问题。我知道像这样的问题有很多答案,其中解释了代码和DOM引用关系。我对新的html5元素特别感兴趣,因为它们似乎处于一种部分完成的状态。我知道像这样的问题有很多答案,其中解释了代码和DOM引用关系。我对新的html5元素特别感兴趣,因为它们似乎处于部分完成状态