2016-04-19 10 views
0

を消えます。 デバッガーを閉じてからページを更新すると、結果が表示されなくなります。d3js:</p> <pre><code>var map_json; // in global scope var map; ... function get_data() { map_json = d3.json("data/russia_1e_7sr.json", function (e, d) { map = d; }); // ... draw map } </code></pre> <p>私はこのコードをデバッグする場合、私は結果を参照してください。d3.csvと、それはデータだが、私はこのコードを使用

オブジェクトのメモリで何か起こっていることをお勧めします。 しかし、何ですか?

d3でデータを取得する正しい方法は何ですか? はい、私は、この例では、以下を参照してください

私は、さまざまなソースからのいくつかのデータ部分をロードしたい場合はどう
d3.csv("file.csv", function(e,d) { 
    // ... use d 
    // all things processed inside this function 
} 

+1

これは、非同期の 'callback'関数です。これは、プログラムの残りの部分と線形シーケンスで起動しないことを意味します。その結果、ファイルがロードされる前に描画コードが実行されます。リニアフローのコールバック内からマップを描画する関数を呼び出す必要があります。複数のソースをロードするには、ロードをネストするか(別のコールバックにロードする)、またはコールバックごとにインクリメントするカウンタを定義し、最後の関数と呼ばれるデータ部分の数に等しい場合はカウンタを定義します。 – JSBob

+0

私はちょうどjsで始まったばかりです。良い説明をありがとう:私はそれを得た。 –

答えて

0

あなたはドローマップのビットをシフトする必要があります:あなたはそれを持ってどこ

var map_json; // in global scope 

... 
function get_data() { 
    map_json = d3.json("data/russia_1e_7sr.json", function (e, d) { 
     var map;= d; 
     // ... draw map 
    }); 
} 

mapはまだ設定されません。

関連する問題

 関連する問題