内存泄漏与Jqgrid和AngularS

时间:2015-10-21 09:34:09

标签: javascript angularjs memory-leaks jqgrid

我将AngularJS 1.3与jqgrid 4.6.0一起使用。

每次我创建一个新的jqgrid并删除它时,我有250Ko的内存泄漏。

我的网格处于局部视图中,具有不同的控制器。 我的范围有一个$ destroy事件。 我的网格是用指令构建的。

当我关闭视图但我的网格已经存在时,我进入此事件

查看



<div ng-controller="ConsulterGridController">
    <table jqgrid options="optionsGrilleRecherche"></table>
</div>
&#13;
&#13;
&#13;

指令

&#13;
&#13;
    export function jqgrid($document): ng.IDirective {
        return {
            restrict: 'A',
            scope: {
                options: "=?",
                data: '=?'
            },

            link: function (scope: IJqGridScope, element, attrs) {
                scope.$on('$destroy', function () {
                     // deregister all event handlers
                    //table.jqGrid('clearGridData');
                    //table.GridUnload();
                    //table.GridDestroy();
                    //$('gbox_'+options.id).remove();
                    //table.trigger('reloadGrid');
                    //table.remove();
                    angular.element('gbox_' + options.id).remove();
                    angular.element(options.id).remove();
                    element.html('');//.empty();
                    element.off();
                    console.log(element);
                    element.remove();
                    console.log(element);

                });
                var table; var grid;
                table = angular.element('<table id="' + options.id + '"></table>');
                element.append(table);
                element.addClass('ui-grille');
                grid = table.jqGrid(options);
              },
            controller: function ($scope) {

            }
        };
    }

    jqgrid.$inject = ["$document"];
}
&#13;
&#13;
&#13;

Memory test

我尝试了一些方法,但内存泄漏仍然存在。

0 个答案:

没有答案