我用JQuery制作了一个幻灯片,目前只使用
append()
将<img>
添加到以前定义的容器中。幻灯片自动旋转,最后一张幻灯片返回开始并无限继续。
目前,我根本不删除容器中的上一个图像。 我没有注意到任何性能方面的变化或我的内存填充 - 如果我继续添加元素而不删除旧元素,我会在Flash中习惯这种行为。
是否有必要删除旧图像,还是永远不会引起性能问题?
append()
将<img>
添加到以前定义的容器中。幻灯片自动旋转,最后一张幻灯片返回开始并无限继续。
目前,我根本不删除容器中的上一个图像。 我没有注意到任何性能方面的变化或我的内存填充 - 如果我继续添加元素而不删除旧元素,我会在Flash中习惯这种行为。
是否有必要删除旧图像,还是永远不会引起性能问题?
很可能,随着添加的照片越来越多,性能会逐渐受到影响,但如果可能的话,请测试它,尽可能添加更多照片,但如果您的网站上没有太多活动,您可能不会看到任何性能问题。如果您没有看到任何问题,请不要担心。就像我说的,试试看吧。
可能有些内容与浏览器有关,但总的来说,我认为不清理旧元素确实是“不好”的。无论元素是否可见,它仍会向DOM结构添加一个节点,而你不能无限地向DOM添加节点。
除非浏览器实现了某种智能修剪算法,可以交换未使用/不可见的DOM部分,但我从未听说过这样的实践。
append()
将<img>
元素添加到某个现有容器时,这将为该元素创建一个新的Node
并将其作为容器的Node
的子级添加到DOM(文档对象模型)中。 DOM只是表示网页/文档当前状态的数据结构。 因此,实质上,每次您append()
某些内容时,此数据结构都会略微增大,并且它只能增长到浏览器耗尽内存之前的大小。 - aroth<img>
元素才会引起严重问题。 - aroth在追加图片之前添加 $(div).innerHTML=''
不应该清除 div 中的所有内容吗?