如何在javascript中删除节点,而父节点为null

时间:2015-02-20 22:02:26

标签: javascript

我在我的javascript代码中创建了几个Image类(据我所知 - 它是普通的img节点)但是(重要的是)没有将它附加到DOM。我用它来检查预加载状态,然后在canvas上绘制。

现在我希望能够中断预加载过程,所以,正如我所理解的那样,我需要删除node.complete === false所在的节点。有没有办法在不创建另一个假元素的情况下将其用作所有的父元素图片?我可以删除没有父节点的节点吗?或者删除节点不会中断图像资源的HTTP请求?

1 个答案:

答案 0 :(得分:3)

如果父节点为null,则该元素在DOM中,并且不需要从DOM中删除 - 从DOM中删除图像节点不会影响它的加载。< / p>

简单地:

  1. Image.src设置为其他内容,例如空字符串(这是告诉浏览器“停止加载”资源的最佳方法),并且;

    < / LI>
  2. 不要对元素

  3. 保留任何强引用

    然后,在JavaScript无法再访问元素后,元素将被“删除”或“垃圾回收”(参见#2)。

    我相信可能是任何onload事件之间的竞争条件,并将Image.src设置为空字符串。如果绝对重要的是加载“中止” - 即使它成功 - 确保在onload / complete检查处理程序中再次检查src属性(或另一个“中止”标志)。