Вот мой пример кода:
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 изображение). Обновите страницу и выберите то же изображение. Результат? Вкладка вылетает! (Оу, Snap!)
Я предполагаю, что это ошибка в реализации Chrome File API, но мне бы очень хотелось, чтобы кто-то мог это подтвердить и, возможно, даже предложить обходной путь. Я действительно хочу иметь возможность показывать миниатюру фотографии без необходимости заходить на сервер для ее создания (даже если это только для Chrome и FF).
Кроме того, с моим примером кода выше, как только вы выбираете фотографию, вкладка начинает использовать примерно на 32 МБ больше памяти. Это, я думаю, ожидаемо, но меня беспокоит то, что память никогда не освобождается сборщиком мусора. Поэтому, если я продолжаю выбирать больше фотографий, я продолжаю потреблять больше памяти. Я не знаю, связано ли это с проблемой сбоя или нет, но это определенно проблема.
Спасибо за любую помощь!