2011-12-05 2 views
0

OS X 10.6.8、クロム15.0.874.121jquery.get(URL)同期

私はjavascriptを/ jQueryを使って問題が発生している:私は、ベースURLからヘッダファイルをダウンロードしたい、その後、いくつかのより多くを追加テキストをクライアントに吐き出してください。私は、次のコードを使用しています:

var bb = new window.WebKitBlobBuilder; 
$.get('js/header.txt', function(data) { 
    bb.append(data); 
    console.log("finished reading file"); 
}); 
console.log("just before getting the blog"); 
var blob = bb.getBlob('text/plain'); 
// append some more 
saveAs(blob,"name.dxf"); 

をしかしsaveAs(blob)が実行された後にファイルを得ることが唯一の完成の方法ですので、それは失敗します。私は私がそれを修正することができます知っている:

var bb = new window.WebKitBlobBuilder; 
$.get('js/header.txt', function(data) { 
    bb.append(data); 
    //append some more 
    var blob = bb.getBlob('text/plain'); 
    saveAs(blob,"name.dxf"); 
}); 

しかし、それは本当に魅力的に見えるしません:私はブロブにヘッダを追加するだけgetステートメントを使用したい、と私はからフッターを読みたい場合はファイルシステム、私はgetgetをしなければならない、と内側get

でブロブを吐き出す全体のファイルが正常にロードされるまで実行からGET文の後にコードを保留するが、代替の方法はありますか?

+0

私はこの[SOリンク] [1]かなり私の質問に答えると思います。 [1]:http://stackoverflow.com/questions/133310/how-can-i-get-jquery-to-perform-a-synchronous-rather-than-asynchronous-ajax-re –

答えて

0

番号*

しかし、あなたはそれがより魅力的に見えるしたい場合は、あなたが達成し、それに応じて関数を記述しようとしている意味的かを説明してみてください。多分:

function loadBlob (loadHeader, loadBody) { 
    loadHeader(loadBody); 
} 
loadBlob(function (oncomplete) { 
    $.get("js/header.txt", function(data) { 
     bb.append(data); 
     oncomplete(); 
    }); 
}, function() { 
    var blob = bb.getBlob('text/plain'); 
    // append some more 
    saveAs(blob,"name.dxf"); 
}); 

私は分かりませんが、それはより魅力的ですか?個人的に、私は元気だと思うので、おそらく鉱山はそれほど良くはありませんが、意味はsematicsを使うことです。

* setTimeoutを使用して、応答が受信されたかどうかを調べることができます。それはと技術的にはですが、確かに魅力的ではないでしょうか?

関連する問題