Если я вас хорошо понимаю, вы хотите показывать индикатор выполнения до тех пор, пока ваш сервер не будет готов отправить файл, а не показывать ход загрузки файла.
Если это правда, вы имеете дело с тяжелым упражнением. Надежный индикатор прогресса должен знать (довольно точно), что вы делаете и сколько времени это займет. В вашем случае существует множество ненадежных факторов (одним из них, возможно, самым большим, является сама сеть).
Таким образом, большинство разработчиков используют какую-то «бесконечную» анимацию для отображения «незавершенного производства».
обновление
Исходя из вашего комментария, самый простой способ отобразить анимацию "в процессе работы" будет выглядеть так:
$.ajax({
url: "/myscripts/myserverscript",
type: "POST",
data: {
foo: "bar"
},
dataType: "text",
beforeSend: function(xhr){
// display a progress animation
},
complete: function(xhr, status){
// hide the animation
}
...
});
В случае одного запроса. Вы также можете установить глобальный обработчик событий ajax для обоих (.ajaxStart()
и .ajaxStop()
), чтобы настроить функцию show / hideallallity.
Ссылки: .ajax () , .ajaxStart () , .ajaxStop ()