3

複数のファイルをロードして D3.js で使用したいと考えています。Queue.js はそのための優れたツールのようです。d3.js は v3 でより高度な XHR 機能をサポートしているため、Queue.js を使用して複数のファイルを読み込み、読み込みの進行状況を表示し、エラーが発生した場合はすべてのファイルの読み込みを中止したいと考えています。

これは、進行状況を確認する方法と Queue.js の使用方法です: https://github.com/mbostock/d3/wiki/Upgrading-to-3.0

これらのコードを組み合わせる方法がわかりません。

これは私が今まで持っているものです。 JSFiddle

Queue.jsにprogressイベントハンドラがあれば良いと思うのですが、実装方法がわかりません。

コード例:

queue()
  .defer(d3.json, "file1.json") // https://api.github.com/repos/mbostock/d3")
  .defer(d3.json, "file2.json")
  .progress(function() { console.log(d3.event.loaded/d3.event.total; }) // or use argument?
  .error(function(error) { this.abort(); console.log(error); })
  .await(function(data) { console.log(data); });
4

1 に答える 1

1

queue.js の queue() によって返されるオブジェクトには、メソッド「progress」と「error」がありません。ソース コードへのリンクは次のとおりです: https://github.com/mbostock/queue/blob/master/queue.js

queue.js は xhr オブジェクトを受け取り、「適用」を使用して関数を実行するため、次の回避策がうまくいきました。関数を実行するには、xhr オブジェクトの get() メソッドを使用します。

サンプルコード:

queue().defer(d3.json("file1.json")
                 .on("progress", function({console.log(d3.event.loaded);})                                               
                 .get, /*First argument*/ "error")
       .await(function (error, file1_data) {console.log(file1_data);});

お役に立てれば。

于 2013-11-21T04:27:25.610 に答える