У нас есть форма с пятью <input type="file"/>
элементами, которая находится в производстве и отлично работает. Мы получаем тайм-ауты запроса и MaxRequestLength иногда превышают ошибки. Чтобы предотвратить эти ошибки, я планировал написать несколько Javascript для загрузки файлов по одному вместо всех сразу. Вот как я планировал это сделать ...
- В document.ready вставьте скрытый iframe на страницу
- Измените
<form>
, чтобы настроить на iframe
- Отключить все элементы в форме (что предотвращает их размещение)
- Включите одну загрузку файла за раз и отправьте форму
- Дождаться ответа от сервера
- Когда ответ сервера печатается в iframe, начните следующую загрузку
- Когда все загрузки завершены, обновите страницу, которая вызовет некоторую серверную логику, которая заполняет сетку.
Моя проблема с номером 5. Обычно я думаю, что могу понять это без проблем, но у меня просто один из тех дней, когда мой мозг бастует. Вот мой код до сих пор ...
$(function() {
$("<iframe/>").attr("src", "test.htm").attr("name", "postMe").hide().appendTo("body");
$("form").attr("target", "postMe").submit(function(e) {
e.preventDefault();
$("#btnSubmit").attr("disabled", "disabled").val("Please Wait, Files are Uploading");
for(var i = 1; i < 6; i++) {
$("input[type=file]").attr("disabled", "disabled");
$("#FileUpload" + i).removeAttr("disabled");
$("form")[0].submit();
// HELP!!!
// How do I wait for server before next iteration?
}
location.reload(true);
});
});
Какая конструкция мне нужна здесь, чтобы «дождаться» ответа сервера, прежде чем начать следующую загрузку?