私は以下のコードのようにボタンをクリックしてサーバー上に作成したファイルをダウンロードしています。window.locationが返された後にGIFを読み込みません
$(document).ready(function() {
$('#reportBtn').on('click', function() {
$('#loadingScreen').removeClass('hidden');
window.location = '/myApp/Home/GenerateReport';
setTimeout(function() {
$('#loadingScreen').addClass('hidden');
}, 20000);
});
});
それが正常に動作し、私は理想的にこれは本当にAJAX呼び出しで包み、そのように独自のGUIDを返し、ファイルを返すべきであることを知っている - があり、私はそのアプローチを使用するカントしかし、私はちょうど疑問に思ってファイルがダウンロードされたときに検出する必要がありますので、読み込み中のGIFを削除することをお勧めします。私は実際には正確ではないことを知っている20秒をハードコーディングしました。それは、レポートのデータ量が10秒でダウンロードされるか、ダウンロードに30秒かかることがあります。
より良いアプローチは、私は同じことをwindow.locationのために基本的なコールを維持使用することができますあります - これは、これに代えてreturn File(data, MediaTypeNames.Application.Octet, reportName);
['window.onload'](https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onload)を一度見てください。それが役立つかどうかを見てください。 –