在IE中使用uploadify时内存泄漏

时间:2017-03-14 05:54:50

标签: javascript uploadify

我在IE中试过这个。创建一个uploadify control flash版本)并销毁它,一次又一次地执行这些操作。但似乎在调用方法destroy之后,所记忆的内存并未释放。

<script src="Scripts/jquery-3.1.1.js"></script>
<link href="uploadify/uploadify.css" rel="stylesheet" />
<script src="uploadify/jquery.uploadify.js"></script>

HTML

<button id="btnAdd">add</button>
<button id="btnRemoveLast">remove last</button>
<div id="container">
    <!--we will place uploadifies here-->
</div>

JS

    <script>
        $(function () {            

            $('#btnAdd').click(function () {
                add();
            });
            $('#btnRemoveLast').click(function () {
                removeLast();
            });

            var count = 0;
            function removeLast() {
                if (count > 0) {
                    $('#uploadify' + --count).uploadify('destroy');
                }
            }
            function add() {
                var elem = $('<div id="uploadify' + count++ + '"></div>');
                $('#container').append(elem);
                elem.uploadify({
                    height: 30,
                    swf: '/uploadify/uploadify.swf',
                    width: 120
                });
            }
        });        
    </script>

任何答案都将不胜感激,感谢您赦免我的英语:)

2 个答案:

答案 0 :(得分:1)

对不起我迟到了。我在下班后看到了这个问题。在看到uploadify的源代码后,我找到了问题的解决方案。 它似乎适用于我的IE11。请注意排队。 enter image description here

但是为什么不试试function CollectGarbage().Finally,请忘记我的英语不好。

答案 1 :(得分:0)

看起来像另一个IE“有趣”。 如果问题与我所知的问题相同,那么nullify就是答案。 在IE中,GC存在一个错误,因此您需要“释放”自己的引用和范围变量。

试试这个:

 var upToDestroy =  $('#uploadify' + --count);
upToDestroy.uploadify('destroy');
upToDestroy = null;