1

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

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

  • jQuery 版本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 上提供了内存泄漏。

4

0 回答 0