经常想知道这一点。页面刷新后没有#39;浏览器会丢弃所有内容吗?
由于
答案 0 :(得分:2)
页面刷新后,浏览器不会丢弃所有内容吗?
应该这样做,是的。因此,如果您的页面有内存泄漏,随着时间的推移它将消耗越来越多的内存,直到/除非用户刷新它。 (出于这个原因,我必须每隔几天刷新一次Gmail标签页。)
答案 1 :(得分:2)
取决于。
某些浏览器,如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('*');
在Google Chrome上,打开“任务管理器”(Menu > More Tools > Task Manager
)。
打开新标签页并转到http://google.com并运行上述代码
留意内存使用情况
它应该是大约25000kB。
运行此代码。
您会注意到内存将达到大约40000kB
刷新并重复。
只是看看内存使用情况如何上升......
我想说“是”,但浏览器是非常复杂的程序。