Если вы ссылаетесь на ASHX, который захватывает файл и записывает его обратно в поток, вы можете изменить событие щелчка ссылки, чтобы отобразить сообщение.
$(function () {
$("a.someClass").click(function () {
$("div.message").fadeIn(); // show a loading message
return true; // make sure the link still gets followed
});
});
Сообщение о загрузке может быть просто прядильщиком или чем-то еще, ожидая, пока ASHX запишет ответ.
Редактировать: Поскольку вы не имеете прямой связи с ASHX:
$(function () {
var ashxCallback = function (data, textStatus) {
// data could be: xmlDoc, jsonObj, html, text, etc...
this; // the options for this ajax request
// textStatus can be one of: "timeout", "error", "notmodified", "success", "parsererror"
alert(textStatus);
};
$("a.someClass").click(function () {
$("div.message").fadeIn(); // show a loading message
$.get("some.ashx?id=1234", "", ashxCallback);
return false;
});
});
Использование jQuery.get () и jQuery.post () .
Правка № 2: У меня просто была другая мысль. Что если сообщение «Загрузка ...» было в фрейме, перенаправленном в файл? Таким образом, вы должны отобразить iframe с помощью jQuery, у него будет сообщение по умолчанию «Загрузка ...» и небольшая анимация вращения, а затем установить src / location для iframe в ASHX, который загружается вечно. Затем вы можете передать ему обработчик загрузки с родительской страницы iframe, который будет скрывать / удалять его. Дайте мне знать, если вам нужен пример кода.