2011-10-10 3 views
5

배경 내가 Pie Charts을 생산하는 jquery.sparkline을 사용하고JQuery와 - 업데이트 jquery.sparkline 비동기 데이터 가져 오기 후

. 원형 차트의 데이터는 배열에 포함되어 있습니다.

페이지가 처음로드되면 (.ajax를 사용하여) 웹 서비스가 호출되어 데이터를 가져오고 지정된 콜백이 수신 된 데이터를 가져 와서 파이 차트와 연결된 배열을 업데이트합니다.

화면의 드롭 다운 값이 변경되면 동일한 업데이트 프로세스가 호출됩니다.

상황

것은 나는이 =이 모두가 잘 작동 거짓 비동기 위해 전화 아약스 설정합니다.

.ajax 호출을 asynch = true로 설정하면 원형에 표시된 결과는 항상 '한 번 새로 고침'됩니다. 이 말은 처음에는 파이가 없다는 것을 의미하며, 드롭 다운이 변경되면 파이가 처음에 렌더링되어야하는 것처럼 렌더링됩니다.

코드

$.ajax({ 
    type: "GET", 
    contentType: "application/json; charset=utf-8", 
    url: requestURL, 
    async: true , 
    success: function (data) { successCallback(data); }, 
    error: function (data) { failureCallback(data); } 
}); 

도움말? 누구든지이 문제를 인식합니까?

옵션 내가 배열에 변화를 모니터링하는 옵저버 패턴의 변화에서 찾고 자체를 다시 그리기 위해 jquery.sparkline 객체를 설득 (방법을 잘 모르는) 그러나 이것은 미친 보인다 난 봤는데 확실히 나는 뭔가를 훨씬 더 간과해야합니다. 가레스와 그의 샘플 코드에



덕분에 나는 jquery.sparkline와 아무되지 않은 (잘못하고 있었는지 볼 수 있었다.

나는이 같은 일부 기능을했다 :

function RefreshPieChart(){ 
    //First call managePieDataFetch() 
    //to kick off the web-service request 

    managePieDataFetch(); 

    //now reinitialise the jquery.sparkline 
    //pie charts on the basis that the 
    //array variable initialised in 
    //pieDataFetchCallBack() has the newest 
    //data in it. 
    // 
    //.... It hasn't ! 
} 
function managePieDataFetch(){ 
    //invoke the .ajax call and 
    //provide function pieDataFetchCallBack() as 
    //a call back function 
} 
function pieDataFetchCallBack(){ 
    //post process the data 
    //returned from a successful 
    //ajax call. Place the results 
    //into an array variable at 
    //script scope 
} 

답변

7

내가 어디에 문제가 결정하는보다 완전한 예제를 볼 필요가 싶지만, 비동기를 사용하여 :. 사실 나를 위해 잘 작동

http://omnipotent.net/jquery.sparkline/ajaxtest.html

아약스 측의 소스는 여기에 있습니다 : :

여기 아주 간단한 동작하는 예제에 대한 링크의 차트가 숨겨져 http://omnipotent.net/jquery.sparkline/ajax.phps

경우 (예. display : none) .sparkline()이 실제로 호출 될 때 차트가 표시되도록 강제로 $ .sparkline_display_visible()을 호출해야 할 수도 있습니다.

+0

샘플 코드 덕분에 내가하고있는 일이 jquery.sparklines의 관점에서 정확하다는 확신을 얻었고 실제로 내가 뭘 잘못하고 있는지 알 수있었습니다. (비동기 호출이 작동하는 방식에 대한 어리석은 가정을 함) – glaucon

+0

미안하지만 나는 원래의 질문을 편집하여 내가 다른 사람에게 알릴 수있는 희망에서 잘못하고있는 것을 확장했다. – glaucon

+0

@gareth 첫 번째 하이퍼 링크가 404 오류를 반환합니다. – hughesdan

관련 문제