2012-03-07 22 views
1

ユーザーが添付ファイルのダウンロードを開始した後に表示され、実際にダウンロードが開始された後に表示されるアニメーションローダーイメージを追加したい場合 - ブラウザがファイルのダウンロードを開始確認ダイアログ)。その理由は、添付ファイルがサーバー側で生成される非常に複雑な文書であり、時間がかかり、アニメーション化されたローダーが、ページが動作していることをユーザーに安心させる(ダウンロードが開始されるまでダウンロードボタンを無効にする)からです。ダウンロードが開始された後にコードを実行する

添付ファイルがHttpヘッダーを正しく設定しています。ここで

は、それが今のようになります。

var link = $("#download-link"); 
link.click(function() { 
    link.displayLoader(); 
    $(document).load(link.attr("href"), function() { 
    link.hideLoader(); 
    }); 
    return false; 
}); 

主な問題は、load方法は明らかに私が達成したいと考えて何をしないということです。 window.locationの変更によってトリガされたダウンロードの実際の開始をキャプチャする方法はありますか?

答えて

0

最初にローダーイメージを表示してみませんか?

私が正しく理解していれば、ファイルがダウンロードされた後にローダーイメージが消えてしまい、ファイルのダウンロードが終了した時点で消えてしまう問題があります。

jQueryで簡単に行う方法はありませんが、通常のJavaScript XMLHttpRequestオブジェクトを直接使用するようにドロップすると、ダウンロードのさまざまな段階でいくつかのコールバックが発生し、readyStateプロパティ。

+0

私はあなたの質問を理解していません。ローダのイメージは 'displayLoader()'メソッドで表示されますが、これは簡単にするために質問には含まれていませんが、名前は自明です。 – Przemek

+0

彼は彼がやっているローダーを最初に見せたい。私は質問がどのようにローダーを隠すことができると思う "ダウンロードが実際に始まる"(何を意味する) – jbabey

+0

それは - ブラウザがファイルをダウンロードし始めるとき意味する。 – Przemek

1

できます。

ダウンロードが準備完了(サーバー側の処理)するまで画面全体を無効にします。

ユーザーがボタンのダウンロードをクリックし、ユーザーがファイルを直接ダウンロードします。

ダウンロードしたWebサイトのほとんどに続いています。例えば、 。 Mediafire.com

PS:画面全体を無効にすると、システムタイプダイアログが表示されます。他のオプションを無効にする。

関連する問題