2012-07-18 2 views
0
나는 동적으로의 doGet 요청을 통해 서블릿에서 JSON을 전달하여 D3 일부 자바 코드의 출력을 시각화 할

...d3.json와 서블릿의 doGet 요청

내가 의해 D3와 HTTP 요청을 할 수있어 이렇게 ...

d3.json("data.js", function(data) { alert(data.length) }); 

그러나 시각화를 매 초마다 업데이트하고 싶습니다. 콜백 함수를 호출하면 다른 요청을하고 새 json 객체를 수신할까요, 아니면 처음 수신 한 json을 사용하겠습니까?

js 타이머를 사용하여 매초마다 새 json을 요청할 예정 이었지만 콜백 함수를 사용하여 업데이트 된 json을받을 수 있는지 확인하려고했습니다. 감사!

답변

0

d3.json(<url>, <callback>)을 호출하면 비동기 요청이 수행됩니다. 그래서 당신은 주위를 한 번 매 초마다이 전화를해야합니다 : 서버가 응답 속도가 느린 경우

setInterval(function() { 
    d3.json(<url>, <callback>); 
}, 1000); 

그러나, 이것은 구축하기위한 요청의 백 로그가 발생할 수 있습니다. 대신, 더 많은 데이터를 당신이 그것을받을 때마다 요청할 수있다 : 한편

fetch(); 
function fetch() { 
    d3.json("more.json", function(json) { 
    // Update visualisation here… 
    setTimeout(fetch, 1000); // fetch more data after 1000ms 
    }); 
} 

을,이 D3.js 현재 당신 에러가 발생하면 말하지 않기 때문에 (오류 응답이 있다면 데이터를 요청 중지). 오류를 처리하려면 XMLHttpRequest를 직접 사용할 수 있습니다.