Javascript非常慢?将图像文件转换为base64时

Javascript非常慢?将图像文件转换为base64时,javascript,angularjs,Javascript,Angularjs,我正在用这个代码做一个基本的图像上传 $scope.fileChanged = function () { var fileuploader = angular.element("#uploadFile"); var reader = new FileReader(); reader.onload = function () { var image = document.getElementById("image"); image.s

我正在用这个代码做一个基本的图像上传

$scope.fileChanged = function () {
    var fileuploader = angular.element("#uploadFile");   
    var reader = new FileReader();
    reader.onload = function () {
        var image = document.getElementById("image");
        image.src = reader.result;
        image.style.opacity = 1;
        $scope.image = reader.result; 
    };
    var files = fileuploader[0].files;
    reader.readAsDataURL(files[0]);
    fileuploader.trigger('click');
};
html

//这需要很多秒才能出现

 <div class="col-md-6">{{image}}</div>
{{image}

数据URL已过时,因为它们会消耗时间和内存

改为使用对象URL:

var image = document.getElementById("image");
image.src = URL.createObjectURL(files[0]);
对象URL更高效、更快

有关详细信息,请参阅


缓慢的原因是您试图将base64数据保存在$scope@Ahmet你确定是关于那件事的吗?那么我应该怎么做呢?删除这一行并尝试:$scope.image=reader.result;出于兴趣,为什么要将事件设置为
onchange=“angular.element(this.scope().fileChanged()”
,好像是从应用程序外部访问范围一样?您不使用
ng change=“fileChange()”
?@ShaunE.Tobias
ng model
指令和
ng change
指令不适用于开箱即用的
。看见
 <div class="col-md-6">{{image}}</div>
var image = document.getElementById("image");
image.src = URL.createObjectURL(files[0]);