배경 내가 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
}
샘플 코드 덕분에 내가하고있는 일이 jquery.sparklines의 관점에서 정확하다는 확신을 얻었고 실제로 내가 뭘 잘못하고 있는지 알 수있었습니다. (비동기 호출이 작동하는 방식에 대한 어리석은 가정을 함) – glaucon
미안하지만 나는 원래의 질문을 편집하여 내가 다른 사람에게 알릴 수있는 희망에서 잘못하고있는 것을 확장했다. – glaucon
@gareth 첫 번째 하이퍼 링크가 404 오류를 반환합니다. – hughesdan