2013-03-27 8 views
3

D3.js에서 사용할 여러 파일을로드하고 싶습니다. Queue.js는 좋은 도구 인 것 같습니다. d3.js는 v3에서 고급 XHR 기능을 지원하므로 Queue.js로 여러 파일을로드하고로드 진행률을 표시하고 오류가있는 모든 파일로드를 중단합니다. https://github.com/mbostock/d3/wiki/Upgrading-to-3.0진행 이벤트가있는 Queue.js

나는 이러한 코드 조각을 결합하는 방법을 모른다 : 이것은 당신이 진행 상황을 확인하는 방법과 Queue.js을 사용하는 방법입니다

.

이것은 지금까지 가지고 있습니다. 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); }); 

답변

1

큐에 의해 리턴 된 객체() 메소드 queue.js의 "진행"및 "오류"가 없다. 다음은 소스 코드에 대한 링크입니다 : 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);}); 

희망.

+0

동일한 큐를 사용하여 여러 JSON 파일을 가져 오는 동안이 작업이 가능합니까? – lazyProgrammer01