这是我的示例代码:
var input = document.createElement('input');
input.type = 'file';
document.body.appendChild(input);
input.addEventListener('change', function(){
var file = input.files[0];
var reader = new FileReader();
reader.onload = function(e){
var image = new Image();
image.src = e.target.result;
};
reader.readAsDataURL(file);
});
加载页面,选择一个大图像(我使用的是 2.9MB 4288x3216 图像)。刷新页面并选择相同的图像。结果?标签崩溃!(啊,快!)
我的猜测是,这是 Chrome 文件 API 实现的一个错误,但如果有人能证实这一点,甚至可能提供解决方法,我会很高兴。我真的希望能够显示照片的缩略图,而不必去服务器生成一张(即使它只是用于 Chrome 和 FF)。
此外,在我上面的示例代码中,一旦您选择了照片,选项卡就会开始使用大约 32MB 的内存。我想这是意料之中的,但我担心的是内存似乎永远不会被垃圾收集器释放。所以如果我继续选择更多的照片,我会一直消耗更多的内存。我不知道这是否与崩溃问题有关,但这绝对是一个问题。
谢谢你的帮助!