zoukankan      html  css  js  c++  java
  • 關於jQuery的empty()方法和IE內存回收的一些體會

    jQuery 的empty()方法在可以頁面移除元素,但是並不能釋放這些元素的子元素佔用的內存,而這些元素的子元素將變成“遊離狀態”,理解了樹的概念就很好理解這個。

    現在需要做的:

    第一步:

    就是將這些子元素放進<div>標籤中,再將<div>的HTML賦值為空:

    jQuery.fn.removeNode = function(){
            var d;
            return function(){
                if(this[0] && this[0].tagName != 'BODY'){
                    d = d || document.createElement('div');
                    d.appendChild(this[0]);
                    d.innerHTML = '';
                    d.outerHTML = '';
                }
            }
        }();

    第二步:

    將這些元素綁定的事件釋放

     (function($) {
            $.fn.Disposable = function(cln) {
                return this.each(function() {
                    var el = this;
                    if (!el.dispose) {
                        el.dispose = cleanup; // will be called by
                            // Microsoft for cleanup
                        $(window).bind("unload", cleanup);
                    }
                    function cleanup() {
                        if (!el)
                        return;
                        $(el).unbind();
                        $(window).unbind("unload", cleanup);
                        el.dispose = null;
                        el = null;
                    };
                });
            };
        })(jQuery);

    測試結果有效,可以通過 IE Sieve 工具進行查看。

    以上jQuery代碼來自網絡,參考地址:

    http://zhanjianhua.iteye.com/blog/230695#comments

    http://www.codeproject.com/Articles/34348/jQuery-Memory-Leak-in-UpdatePanel

  • 相关阅读:
    Longest Mountain in Array 数组中的最长山脉
    css 解决 图片 底部 3像素问题
    获取当前年月日2020-09-30格式
    vue + elememt ui table 实现滚屏效果
    滚动字
    layui 之监听 select 的变化
    正则匹配非汉字
    layui form里的select元素动态赋值无效
    layui 之 弹框重新打开 upload无效
    GPS坐标转百度坐标
  • 原文地址:https://www.cnblogs.com/wftrustself/p/3529763.html
Copyright © 2011-2022 走看看