Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 不从HTML中删除非';看不见?_Javascript_Jquery_Performance_Slideshow - Fatal编程技术网

Javascript 不从HTML中删除非';看不见?

Javascript 不从HTML中删除非';看不见?,javascript,jquery,performance,slideshow,Javascript,Jquery,Performance,Slideshow,我使用JQuery制作了一个幻灯片,目前它只使用append()将添加到先前定义的容器中。幻灯片自动旋转,在最后一张幻灯片后返回开始位置并无限继续 目前,我根本没有删除容器中的前一个图像。我没有注意到性能或内存占用方面的任何变化——如果我继续添加元素而不删除旧元素,我在Flash中已经习惯了这种行为 是否有必要删除旧图像,或者这些图像永远不会导致性能问题?最有可能的是,随着时间的推移,它会影响性能,添加的照片越多,性能将受到的影响就越大,但如果可能的话,请对其进行测试,尽可能多地添加,但如果您的

我使用JQuery制作了一个幻灯片,目前它只使用
append()
添加到先前定义的容器中。幻灯片自动旋转,在最后一张幻灯片后返回开始位置并无限继续

目前,我根本没有删除容器中的前一个图像。我没有注意到性能或内存占用方面的任何变化——如果我继续添加元素而不删除旧元素,我在Flash中已经习惯了这种行为


是否有必要删除旧图像,或者这些图像永远不会导致性能问题?

最有可能的是,随着时间的推移,它会影响性能,添加的照片越多,性能将受到的影响就越大,但如果可能的话,请对其进行测试,尽可能多地添加,但如果您的站点中没有大量的图片,您可能看不到任何性能问题。如果你没有发现任何问题,不要担心。就像我说的,试试看。

其中一些可能依赖于浏览器,但总的来说,我会说是的,不清理旧元素确实“不好”。无论元素是否可见,它仍在向DOM结构添加节点,并且不能无限地向DOM添加节点


除非浏览器实现了某种智能修剪算法,可以替换掉DOM中未使用的/不可见的部分,但我从未听说在实践中会这样做。

不应该添加
$(div).innerHTML=''
在附加图像之前,清除div中的所有内容?

浏览器会缓存所有加载的图像。每个映像都会消耗内存,但删除映像不会影响缓存。如果缓存开始出现问题,浏览器将开始释放内存。每个浏览器都有不同的功能,有些浏览器比其他浏览器做得更好。在当前页面的可视空间中看不到的任何图像都是公平的。如果当前页面上的图像被抛出并随后在页面的可视区域中可见,则会重新加载该图像


总之,删除旧图像不会影响性能。

后一个注释可能不适用,因为浏览器不会认为上一张幻灯片不可见,它只是在上面放置了一个新元素。你能详细阐述一下你的第一点吗?关于不能无限地添加到DOM中吗?@Marty Wallace-当然。当您调用
append()
元素添加到某个现有容器中时,这将为该元素创建一个新的
节点
,并将其添加为DOM(文档对象模型)中容器的
节点的子节点。DOM只是一个表示网页/文档当前状态的数据结构。所以本质上,每次你
append()
something时,这个数据结构都会稍微变大,而且它只能在浏览器内存耗尽之前变大。啊,所以我关心的应该是浏览器的内存。这是有道理的+1.@Marty Wallace-是的。虽然在实践中,可能需要很长时间/大量的
元素才能引起严重的问题。不用担心,所有这些都是有道理的。谢谢。目前我对演出不太关心。我的意思是,人们不会让这个页面长达15个小时等待它变慢,而且从视觉上看也没有什么问题。这更像是一个源自我好奇心的问题。但是,快速添加一吨图片可能是一个不错的策略,如果我没有得到一个确切的答案,我会试一试:)更准确地说,你的意思是删除添加到页面中的元素没有好处?并非所有元素都是这样。img容器本身的开销很小。这就是为什么我说在这种情况下没有真正的优势。删除开销较大的元素,如输入、选择、文本区域等,可能会有所不同(但只有在删除大量元素的情况下)。这将使我正在进行的当前转换无效,即新图像在先前添加的图像上方淡入,使其看起来非常漂亮。哎呀,你没有提到这一点!:P