【发布时间】:2010-12-24 08:53:14
【问题描述】:
我正在使用 iframe 通过带有正在更新的 jquery 的菜单加载内容 iframe 的“src”属性,然后加载到所需的页面中。每个 页面有自己的 javascript 包含和大量内容。
代码如下:-
$(document).ready(function() {
loadPage('main.php');
});
function loadPage(url) {
$('#applicationFrame').attr('src', url);
}
并且索引页面上的 iframe 如下所示:-
<iframe id="applicationFrame" application="yes" trusted="yes" frameborder="0" />
(旁注:我意识到这里的 iframe 采用非标准属性,但是 这是在其中一个 Microsoft 中运行的内部 Intranet 应用程序 在 HTA 中它们确实有意义。)
无论如何,菜单项只是在调用 javascript:loadPage('whatever.php') 为了加载任何需要的内容。
我面临的问题是,在每个后续页面上单击菜单 帧正在泄漏内存,直到最终整个应用程序慢下来。 sIEve 报告如下:-
leaks http://img37.imageshack.us/img37/3997/leaks.png
每次点击 (21 -> 44 -> 65) 等时,此处的泄漏列都会上升。
检查泄漏检查器显示:
inspector http://img527.imageshack.us/img527/4430/inspector.png
在我看来,这只是泄露的整个 iframe 内容。
有没有办法避免这种情况?我错过了什么吗?我发现了一个类似的问题 here dojo 框架有,但尝试建议的解决方案没有 似乎工作。我还尝试了很多其他粘贴的东西 here 但没有解决。
这似乎(令人惊讶)只影响 IE6,它确实是唯一的目标 应用程序的受众。
【问题讨论】:
标签: javascript jquery iframe memory-leaks internet-explorer-6