【问题标题】:How to properly remove a polymer element from a web page如何从网页中正确删除聚合物元素
【发布时间】:2017-05-20 23:23:18
【问题描述】:

我在从网页中删除聚合物元素时遇到了一些问题。

我通过一个包含内容的无序列表构建了一个轮播。这些内容有些是简单的 HTML,有些是图像,有些是视频,有些是聚合物元素。

不时地,<ul> 会通过 jQuery .empty() 命令清除。

我面临的问题是聚合物元素似乎没有被正确清除。

在聚合物元素内部是超时事件,它们时不时地检索内容(xml 和图像)。在从页面中删除聚合物元素之后调查 chrome 开发人员工具中的网络负载时,您仍然可以看到不时加载的 xml 和图像。所以很明显,聚合物元素的一部分仍然是活跃的,很可能是在影子的某个地方。

如何从我的网页中正确删除嵌入的聚合物元素以及与之相关的所有内容?

【问题讨论】:

  • 您能否更新问题以显示添加/删除计时器的代码?如果您正在使用 Polymer 生命周期回调,那么展示这一点很重要。更好的是小提琴中的可重现代码 sn-p(codepen 等)。

标签: javascript jquery polymer shadow-dom


【解决方案1】:

我认为 setTimeout 不是在您的元素范围内定义的,而是在全局范围内。

因此,您必须在元素的生命周期中使用 clearTimeout 函数 detach 函数来取消现有的超时。

【讨论】:

  • 你为什么假设setTimeout()在这里使用(与Polymer的async()相比)?
  • 因为这句话:“聚合物元素内部都是超时事件”,可能是我误解了问题。
  • 有可能 OP 使用 Polymer 的 async() 而不是 setTimeout() 实现了“超时事件”(但即使没有,如何不定义 setTimeout?)。我想我们会找出问题是否/何时更新以包含相关代码。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 2023-03-06
  • 2015-06-17
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多