gpt4 book ai didi

javascript - 内存问题 - Webkit 是否缓存元素的 CSS 样式?

转载 作者:行者123 更新时间:2023-11-30 06:06:56 24 4
gpt4 key购买 nike

我在当前项目中遇到了 Windows 上 webkit 浏览器的内存问题。我将首先描述我从事的项目,然后描述实际问题。请接受我对长文本的道歉,我希望它不会太多..

我正在进行一个项目,可以让您在线查看打印杂志。对于 iPad 支持,它是在 HTML/CSS/JS (Mootools) 中完成的,而不是在 Flash 中。基本上它一次显示一个双页,通过 JSON 加载新页面。该双页基本上是一个包含图像和可能的一些额外元素的 div。当双页不在 View 中时,在通过将其“src”设置为 1px 白色 jpg 来“卸载”所有图像后,它的 container-div 将从 DOM 中删除,并且我还尝试清空并删除所有属性从 DOM 中删除之前的 div。

Firefox、Opera 和 IE 可以正确卸载,我可以看到无论我查看多少页面,RAM 使用率都保持不变 - 加载新页面,加载旧页面。或者至少您会看到内存不时被释放到正常值,这可能是通过垃圾收集。

另一方面,Safari 和 Chrome 根本不会释放任何内存,内存使用量会随着每个新查看的页面而增加。所以 RAM 被越来越多地填满,可能直到再也没有可用的为止。当您返回并查看已加载的页面时,内存使用情况保持不变。

现在,我认为内存用于以某种方式缓存加载的图像,但我发现当您从 Safari 的开发人员菜单中禁用样式时,RAM 使用率总是下降到相同的“正常”值,不管以前是什么。这意味着:如果您查看多个页面,并且 Safari 占用 500MB 的 RAM,并且您禁用样式,则 RAM 使用率下降到 ~120MB。现在,如果您查看更多页面,并让 Safari 占用超过 1GB 的 RAM,并且您禁用样式,RAM 使用率将再次下降到大约 120MB。

因此,我得出结论,RAM 不是被图像数据占用,而是被某种与样式相关的数据占用。这对我来说是巫术或巫术:我真的不知道如何从这里开始解决这个问题。我很难研究这个问题,也许我还没有发现它。

最佳答案

嗯。我有点怀疑它真的是故意保留的样式数据......我怀疑这只是 WebKit 的内存缓存在丢弃资源方面很懒惰,需要一些东西才能让它发挥作用。切换样式表会留下一堆现在未使用的背景图像,所以我猜他们正在使用它作为内存缓存清理的触发器。可能还有其他触发因素。

我不确定 WebKit 的内存缓存试探法是什么,但如果页面加载的图像等资源无限期地保存在内存缓存中,至少只要有足够的工作内存,我就不会感到惊讶。

关于javascript - 内存问题 - Webkit 是否缓存元素的 CSS 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com