Я создал веб-приложение, которое берет файл из формы и отправляет его на сервер с помощью ajax, а затем обновляет страницу.Он отлично работает в браузерах, кроме Chrome Mobile.Я попробовал это в Android.который показывает unable to complete previous operation due to low memory
и iOS, которая возвращает ошибку.
Я хочу исправить эту проблему для пользователей, которые будут использовать это веб-приложение.таким образом, такие решения, как очистка кэша, который, кстати, не работает, и таких на самом деле не достаточно.
вот мой код JavaScript, если он помогает:
file = document.getElementById('file');
fd = new FormData();
fd.append( 'file', file.files && file.files.length > 0? file.files[0] : null);
jQuery.ajax({
type: 'POST',
url: url,
processData: false,
contentType: false,
data: fd,
success: function (data, status, request) {
// update UI here
},
error: function (e) {
alert("error has occurred");
}
});
Я просто хотелдобавим, что веб-сайт прекрасно работает в Chrome-Mobile, пока я не выбираю файлы.Кроме того, я проверил его в Safari, и он работает
EDIT : причины, по которым я считаю, что это проблема, связанная с Chrome и НЕ память устройства
- Это работаетв safari и firefox в ТО ЖЕ УСТРОЙСТВО
- Он не работал в chrome даже после очистки кеша
- на устройстве много свободного места и памяти.и был очищен перед запуском приложения на chrome
- файл в вопросах имеет буквально 1,57 КБ.Извините, но я не вижу, как загрузка файла размером 1 КБ может привести к нехватке памяти
Какие вопросы в двух словах:
Есть ли обходной путь для JavaScript в Chrome?Так же, как пример, колба не работает хорошо в IE8 и более ранних версиях, поэтому использование inline-block может как-то исправить вопрос.Возможно ли, например, что FormData()
не работает правильно на Chrome?если да, каковы альтернативы?вот почему я задал вопрос, и именно так я посмотрел на проблему, если она помогает