这取决于。
某些浏览器(例如 Opera 12.17 及更早版本)在单个进程中运行。
它们的内存访问受到限制,并且对同一地址空间执行大量操作。
其他浏览器(例如 Google Chrome)每页都有一个进程,刷新后该进程可能会被删除。
但是,由于它泄漏了,它可能超出了浏览器当前控制的边界(例如:可能被放入交换中)。
在那里,不能保证它会被删除。
另请注意,浏览器的垃圾收集器可能存在错误,并会留下一些对象(如旧的 IE 版本)。
这不会随着刷新而消失。
考虑这个非常基本的代码:
var all = document.getElementsByTagName('*');
for(var i=all.length-1; i; i--)
{
all[i].parentNode.removeChild(all[i]);
}
document.write('<p>New content</p>');
all = document.getElementsByTagName('*');
Run Code Online (Sandbox Code Playgroud)
在 Google Chrome 上,打开“任务管理器”( Menu > More Tools > Task Manager)。
打开一个新选项卡并转到http://google.com并运行上面的代码。
密切关注内存使用情况。
应该在25000kB左右。
运行这段代码。
您会注意到内存将增加到大约 40000kB。
刷新并重复。
看看内存使用量如何上升......
我很想说“是”,但浏览器是非常复杂的程序。
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |