移动浏览器内存泄漏中的角度文件上传

时间:2016-02-01 20:06:05

标签: javascript ios angularjs memory-leaks ng-file-upload

我正在使用最新版本的ng-file-upload,并在上传超过50张图片时看到大量内存消耗(> 1gb)。我希望能够专门从iphone处理500个以上的图像。泄漏似乎是由resizeapplyExifRotation承诺引起的。我一直在使用Chrome中的任务管理器来测试内存使用情况。任何关于重构的建议都将受到赞赏。

我有一个具有以下属性的按钮。

<button ng-hide="uploading" accept="image/*" class="button" ngf-select ngf-change="doit($files)" ngf-multiple="true">Select Files</button>

使用像:

这样的控制器
var CHUNKSIZE = 5;
    $scope.doit = function(files) {
        $scope.remaining = files.length;
        $scope.fileChunks = _.chunk(files, CHUNKSIZE);
        $scope.uploadChunk(0);
    }

    $scope.uploadChunk = function(i) {
        var uploaded = 0;
        angular.forEach($scope.fileChunks[i], function(f) {
            Upload.resize(f, 1000).then(function(f) {
                return f;
            }).then(function(f) {
                Upload.applyExifRotation(f).then(function(f) {
                    uploaded++;
                    $scope.uploadFile(f);
                    if (uploaded == CHUNKSIZE) {
                        $scope.uploadChunk(i + 1);
                    }
                })
            });
        });
    }

你可以在这里看到一个jsfiddle http://jsfiddle.net/nwy08oak/15/

0 个答案:

没有答案