0

次のコードはこれを行います:サーバー内のファイルを変更するstrutsアクションを実行し、ファイルをダウンロードしますファイルはダウンロードされますが、このファイルの最後のバージョンではありません

$("#generateButton").live("click",function(){
    $.ajax({
        type: "POST",
        url: "../generateBlame.do",
        data: { fileName: "blame", nbrParam: "2",param1 :"aaa",param2:"bbb" }
    });

    $.fileDownload('http://localhost:8080/gestionRH/fiches/decision de blame.doc');
});

更新されたファイルを取得する方法はありますか?

4

3 に答える 3

3

更新が完了した後(successajaxリクエストのコールバック時)にダウンロードアクションを開始します

$("#generateButton").live("click",function(){
    $.ajax({
       type    : "POST",
       url     : "../generateBlame.do",
       data    : { fileName: "blame", nbrParam: "2",param1 :"aaa",param2:"bbb" },
       success : function() {
           $.fileDownload('http://localhost:8080/.../decision de blame.doc');
       }

    });

});
于 2012-09-05T12:18:35.360 に答える
2

要求が指定されたパスでファイルを作成するものであると仮定すると、要求は非同期で行われるため、要求のハンドラーにメソッド呼び出しgenerateBlame.doを配置する必要があります。$.fileDownloadsuccess

これを試して:

$("#generateButton").live("click",function(){
    $.ajax({
        type: "POST",
        url: "../generateBlame.do",
        data: { fileName: "blame", nbrParam: "2",param1 :"aaa",param2:"bbb" },
        success: function() {
            $.fileDownload('http://localhost:8080/gestionRH/fiches/decision de blame.doc');
        },
        error(xhr, status, error) {
            alert("File generation failed - " + error);
        }
    });
});
于 2012-09-05T12:20:04.763 に答える
0

おそらく問題は、サーバーがリソースを更新するのに時間がかかるためです。この問題を回避するために、しばらくしてからダウンロードされたイベントがトリガーされるように強制しました。これはコードです

function timeout_trigger() {
  $.fileDownload('path_to_file');   
    $('#loading').hide();
    $('#generateButton').button({ disabled: false });
}


 $("#generateButton").live("click",function(){
 $('#generateButton').button({ disabled: true });
    $('#loading').show();
    $.post(
       '../generateBlame.do',
       { fileName: "blame", nbrParam: "2",param1 :"pop",param2:"lll" },
      function(data) {
      setTimeout('timeout_trigger()',5000);             
});
});

それはうまくいきますが、私はよりスマートな方法でそれを行うことを好みます。サーバーをリフレッシュする方法はありますか?

于 2012-09-05T16:11:36.667 に答える