如何从没有内存泄漏的select元素中删除选项?

时间:2012-12-27 10:00:53

标签: jquery memory select memory-leaks options

我正在尝试动态更改我的选项中的选项。我注意到,这会在IE8中产生内存泄漏。选项不会从内存中删除。

之后,我在Chrome版本中尝试使用我的代码。 23,我也可以看到内存泄漏。 我展示了2个版本的代码。

  • jQuery verion jsfiddle.net/84Axu/1/

    
        $('#btn').click(function () {
            $('#tstSelect').empty();
            for (var i = 0; i < 10000; i++) {
                var option = $('');
                option.text(i + 1);
                option.val(i + 1);
                $('#tstSelect').append(option);
            }
        });​
    

  • 纯javascript版本http://jsfiddle.net/3VFMt/

    
        function btnClick() {
            // clear select
            var select = document.getElementById('tstSelect');
            while (select.firstChild)
                select.removeChild(select.firstChild);
            // fill select
            for (var i = 0; i < 10000; i++) {
                var option = document.createElement('option');
                option.text = i + 1;
                option.value = i + 1;
                document.getElementById('tstSelect').appendChild(option);
            }
        };
    

这两者都会在IE和Chrome上造成内存泄漏。

0 个答案:

没有答案