Chrome新标签页占用内存

9
我正在开发一个基于Nodejs的聊天应用。和其他聊天应用一样,用户会不断发送链接。但问题在于,当用户点击任意链接(带有“_blank”目标的锚标签)时,Chrome会打开一个新标签页(例如:YouTube视频),这似乎将主标签页和新标签页在内存中连接起来,形成如下图所示的情况:
(见上方第一张图片)
这看起来像是正常的行为,但当用户关闭新标签页时,主标签页会保留新标签页的内存,减少了一些内存空间。
(见上方第二张图片)
垃圾回收器并不总是运行,如果用户打开30个链接,内存可能会显著增长。
有人知道如何创建一个可以避免这种行为的锚标签吗?这是Chrome的问题吗?我的版本是33.0。
有趣的是,当用户右键点击并从菜单中打开一个新标签页时,Chrome会单独创建一个新标签页。这就是我想要复制的行为。
谢谢!

2
就服务器端或客户端执行的代码而言,您无法操纵或影响用户代理程序的垃圾回收或内存使用。 - Chris Baker
谢谢!是的,我知道,但有一个有趣的行为是当用户右击并从中打开一个新选项卡时。Chrome会单独创建一个新选项卡,这就是我想复制的。 - Machinerium
显然,这是一个已知的令人沮丧的问题,似乎每个浏览器都在某些方面存在问题:https://www.google.com/search?q=chrome+memory+leak - DrLivingston
当你说我的主选项卡保存了内存时,你确定你没有分配任何类型的JavaScript对象等,这些对象在数据结构中阻止了GC吗?你确定这不仅仅是你自己的内存泄漏吗? - DrLivingston
2
@DrLivingston,我找到了解决方案,是在锚标签中设置rel=noreferrer。无论如何还是谢谢! - Machinerium
@machinerium 你应该将其添加为答案并接受它 :) - rcambrj
1个回答

5
我找到了一个解决方案,将rel=noreferrer设置为锚点标签。现在它可以单独打开任意数量的选项卡,而不会在主选项卡上过度消耗内存。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接