#jquery #asp.net #download
#jquery #asp.net #Скачать
Вопрос:
Мне было интересно, не подскажет ли кто-нибудь, как исправить эту маленькую визуальную ошибку?
В моем asp.net в коде я генерирую файл, который пользователь может загрузить. Псевдокод выглядит следующим образом:
Response.ContentType = "text/plain";
Response.AppendHeader("Content-Disposition", "attachment; filename=" FileName);
Response.BinaryWrite();
Response.End();
Я также использую jQuery для отображения анимации вращающегося круга на стороне клиента, пока такой файл генерируется на сервере:
$(function () {
$('#ButtonBeginDownload').click(function () {
//When Submit button is clicked
$('#IdSubmitSpinner').css('display', 'inline-block');
});
}
И CSS для счетчика примерно так:
.submitSpinner
{
margin: 0px 10px 0px 6px;
display: none;
width: 28px;
height: 28px;
display: none;
}
и HTML:
<img id="IdSubmitSpinner" alt="" src="Graphics/spinner.gif" width="28" height="28" class="submitSpinner" />
Приведенный выше код работает нормально, и счетчик начинает вращаться при начале загрузки, но, к сожалению, я не могу найти способ заставить счетчик перестать вращаться, когда загрузка файла завершится. Кто-нибудь знает, как это исправить?
Комментарии:
1. Как вы запускаете фактическую загрузку?
2. Давным-давно, но помните ли вы, находили ли вы когда-либо решение для этого? Я застрял с той же проблемой
3. @HansPetterNaumann: Я думаю, я просто позволил этому вращаться. Но приведенный ниже ответ об использовании Ajax, вероятно, является правильным. Посмотрите, сможете ли вы найти лучшее решение, и если да, опубликуйте его здесь…
Ответ №1:
Если вы используете Ajax
вызовы для загрузки файла, вы можете использовать это для определения начала / остановки передачи:
$("#IdSubmitSpinner").bind("ajaxSend", function(){ // when user request sent
$(this).show();
}).bind("ajaxComplete", function(){ // when response ended
$(this).hide();
});
Комментарии:
1. Спасибо, и нет, я использую обычный процесс загрузки в браузере. Как вы добавляете к нему вызовы Ajax? PS. Я не хочу излишне усложнять ситуацию только для отображения счетчика, если вы понимаете, что я имею в виду…
2.Вы можете извлекать
plain/text
содержимое с помощьюjQuery
ajax()
функций семейства. например:$.ajax({ url: 'yourPageURL', type: 'GET', dataType: 'text', success: function(retrievedContent) { // do what ever you want with retrieved content. } });
3. Извините, я все еще не понимаю, что вы пытаетесь предложить. Как это поможет мне в том, чего я хочу достичь?