栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

涉及jQuery Ajax请求的内存泄漏

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

涉及jQuery Ajax请求的内存泄漏

我不确定为什么firefox对此不满意,但是我可以从经验中说,在IE6 / 7/8中,您必须设置innerHTML =“”;
要从DOM中删除的对象上。(如果您是动态创建此DOM元素的,则是)

$("#content tbody").empty();
可能不会释放这些动态生成的DOM元素。

而是尝试如下所示的方法(这是我为解决该问题而编写的jQuery插件)。

jQuery.fn.removefromdom = function(s) {    if (!this) return;    var bin = $("#IELeakGarbageBin");    if (!bin.get(0)) {        bin = $("<div id='IELeakGarbageBin'></div>");        $("body").append(bin);    }    $(this).children().each( function() {     bin.append(this);     document.getElementById("IELeakGarbageBin").innerHTML = ""; }    );    this.remove();    bin.append(this);    document.getElementById("IELeakGarbageBin").innerHTML = "";};

您可以这样称呼:

$("#content").removefromdom();

唯一的问题是,每次要构建表时都需要重新创建表。

另外,如果这确实解决了IE中的问题,则可以在我今年初遇到相同问题时写的博客文章中了解有关此问题的更多信息。

编辑
我现在将上面的插件更新为95%的Javascript免费,因此它比以前的版本使用更多的jQuery。您仍然会注意到我必须使用innerHTML,因为jQuery函数html(“”);
对于IE6 / 7/8的作用不同



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号