Javascript 有可能修复第三方广告的内存泄漏吗?

Javascript 有可能修复第三方广告的内存泄漏吗?,javascript,memory-leaks,ads,google-dfp,Javascript,Memory Leaks,Ads,Google Dfp,我在Playlist.com上发现了一个使用谷歌DFP广告的一致性内存泄漏——让标签保持打开状态,它会持续使用越来越多的内存(只有当广告启用时) 此处可以找到复制泄漏的示例测试页面: 我们是否可以采取任何措施来帮助缓解泄漏?显然,从经济上来说,关闭广告不是一个可行的解决方案 编辑:您可以在Chrome中打开开发者工具并尝试内存时间线-每次加载广告时,它们都会占用稍多的内存。这是可能的,在删除DOM之前尝试重新加载iframe以清理DOM,然后再次添加它。另见: ​ $('a')。单击(函数()

我在Playlist.com上发现了一个使用谷歌DFP广告的一致性内存泄漏——让标签保持打开状态,它会持续使用越来越多的内存(只有当广告启用时)

此处可以找到复制泄漏的示例测试页面:

我们是否可以采取任何措施来帮助缓解泄漏?显然,从经济上来说,关闭广告不是一个可行的解决方案


编辑:您可以在Chrome中打开开发者工具并尝试内存时间线-每次加载广告时,它们都会占用稍多的内存。

这是可能的,在删除DOM之前尝试重新加载iframe以清理DOM,然后再次添加它。另见:


​
$('a')。单击(函数(){
$('iframe')[0].contentWindow.location.reload();
setTimeout(函数(){
$('iframe').remove();
}, 1000);
…再次添加iframe。。。
});​

根据这是如何做的,可能会有一些闪烁的增加,但它不应该是主要的。添加的内容在一段时间后会自动刷新,因此如果一次添加一个iframe,用户将不会注意到。

是否在
iframe
中加载广告?广告本身会这样做,是的,尽管Google DFP以脚本的形式运行,但您可以查看示例页面以了解发生了什么……David评论的要点是“Google DFP[that]“作为脚本运行”可以在此iFrame中运行,而不是在页面中运行。(那么广告将是iframe中的iframe)。希望定期重新加载第一个iFrame可以释放该页面上脚本泄漏的所有内存。@Mikhail-我们没有找到直接的解决方案不-Google DFP有点承认这个问题,但表示他们有其他优先事项要解决。最后,我们构建了一个应用程序,每隔一段时间自动刷新一次页面,以帮助降低内存使用率。有趣的方法-我尝试了完全删除父div并定期重新初始化广告,但没有成功,但我没有尝试刷新。。。我将添加并测试。它不起作用-上面的示例页面现在有一个按钮触发此代码,但它并没有真正帮助解决内存问题。请尝试将两个snapshot与chrome profiler进行比较,一个是内存开始泄漏,另一个是泄漏非常明显,请参阅本教程以比较两个快照,检查意外的保留路径
<a href="#">Remove</a>
<iframe src="url" />​

$('a').click(function(){
    $('iframe')[0].contentWindow.location.reload();
    setTimeout(function(){
       $('iframe').remove();
    }, 1000);

    ... add add iframe again ...
});​