2011-09-13 14 views
3

私たちのWebアプリケーションでは、いくつかの静的(DBから)と動的(生成)のいくつかの生成されたファイルの一部が実際には長くて(Content-Disposition: Attachment) ダウンロードします。ユーザーは時々クリックします。とにかく表示するには、HIDEファイルがブラウザに実際に配信されるとすぐにローダーがありますか?ファイルをダウンロードするときにブラウザに読み込みを指示します

私はstackoverflowで同様の質問を探していますが、有用な回答はありません。exampleです。

これは実行可能な質問ですか、単にファイルが生成される速度を上げようとする必要がありますか?

+1

これは、リンクをクリックしてファイルを生成するまでの遅延ですか、実際のファイルのダウンロードですか? – TJHeuvel

+0

クリックとファイルダウンロードダイアログボックスが表示されるまでの遅延です。 – epoch

+0

答えが重複しています:http://stackoverflow.com/questions/1106377/detect-when-browser-receives-file-download – Poma

答えて

4

: -

JavaScript/jQuery to download file via POST with JSON data

私が最初に言及したjavascript postメソッドを使用してください。 これは最終的にあなたの質問に答えることを願っています。 :)

+0

私はこのソリューションを使用します。入力していただきありがとうございますあなたの支援のために、 – epoch

2

フォーム送信にajaxコードを使用できます。サーバーがリクエストを処理している間、ページの上部にある読み込みアイコン付きのdivを表示します。

あなたのJSPに次のコードを書いてください。

<div id="submitPage"> 
    <img src="/images/loading.gif" alt="">Submitting order... 
</div> 

最初にこのコード

$('#submitPage').hide(); 

とそれを示して、あなたの送信ボタンのクリックでを使用してそれを隠します。

$('#submitPage').show(); 

ajax応答が来たときにもう一度非表示にします。

あなたの問題を解決することを願っています。

よろしく、あなたがもう一度ページをロードする必要はありません

+1

ありがとうございましたLav、私はこれを試しましたが、リクエストを送信しているページがリロードされません。再度非表示にしない)、ajaxリクエストがダウンロードダイアログを起動しない – epoch

2

ラヴ。単にjavascript操作のビットを使ってajaxコールを使いましょう。 :)

$('#submitPage').show(); 

var url = "urlUsed"; 

$.post(url, $("#formName").serialize() , function(responseValue){     

    $('#submitPage').hide(); 

}); 

この方法ではありませんかのように、あなたはAJAX呼び出しを変更することができます - あなたはこのコミュニティから、次のポストを使用することができますそのために

function functionName(){ 
    ajaxRequest = createXMLHttpRequest(); 
    var url = "urlUsed"; 
    $('#submitPage').show(); 
    ajaxRequest.open('get', url , true); 
    ajaxRequest.onreadystatechange = processAjaxResponseForMethodName; 
    ajaxRequest.send(null); 
} 

function processAjaxResponseForMethodName(){ 
    if(ajaxRequest.readyState == 4) { 
      $('#submitPage').hide(); 

    } 
} 
+0

これは動作します(サーバにリクエストして読み込みを隠します)が、ファイルデータは現在ajaxRequest.responseTextにあり、画面上のダウンロードにはダウンロードされませんファイルダイアログ。このリンクを参照してください:http://groups.google.com/group/ajax-world/browse_thread/thread/b7abc61c1f91376a/af58d68f0b706ae9?hl=ja&pli=1 – epoch

関連する問題