2014-03-06 3 views
1

함수는 내 ajax이 성공한 후에 호출해야합니다.document.ready는 ajax 전에 호출됩니다. 성공

jsondatachart.js 스크립트에서 나는 엑셀 시트의 데이터를 가져 와서 창에 저장 한 아약스 방법을 사용했습니다. ChartData 다음과 같습니다. excel의 모든 데이터는 window.ChartData에 저장되지만 document.ready() 함수가 호출 된 후에 발생합니다. 내가 해당 스크립트 jsondatachart.js을 언급 한

$.ajax({ 
     type: "GET", 
     url: "Data.csv", 
     dataType: "text", 
     success: function(data) {window.chartData=data;} 
    }); 

페이지 html에서

// "jsondatachart.js"스크립트는 스크립트가로드되는 디버거는 $ 아약스를에 당한다. 그러나 document.ready 함수가 실행 된 후에 만 ​​success 함수가 실행됩니다. 그래서 메인 페이지에서 사용되는 window.ChartData은 정의되지 않은 것으로 나타납니다

IE 브라우저에서이 문제를 직면하고 있습니다. firefox에서 작동합니다. 간단한에서

<html> 
<head> 
    <script src="Scripts/jquery-1.10.1.min.js" type="text/javascript"></script> 
    <script src="Scripts/jquery.globalize.min.js" type="text/javascript"></script> 
    <script src="Scripts/jsondatachart.js" type="text/javascript"></script> 


</head> 
<body> 
    <div id="container"> </div> 
    <script type="text/javascript" language="javascript"> 

     $(function() { 
     // var data=window.ChartData; (showing window.ChartData is undefine) 
      }); 

, 나는 내가 내 document.ready() 함수에서 window.ChartData을 활용할 수 있도록 $(function(){})는 아약스에서 성공 기능이 발사 된 후에 만 ​​호출해야합니다. 모든

+2

문서 준비 상태는 아약스 요청에 의존하지 않습니다 ... 아약스 요청에 의해 반환 된 값에 의존하는 모든 작업은 성공 처리기에 있어야합니다. –

+0

'window.ChartData'가 필요한 코드를 넣거나 호출해야합니다 성공 함수 내부. [AJAX 호출에서 응답을 반환하는 방법] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call)을 참조하십시오. 코드를 구조화하십시오. –

+0

제 대답을 확인하고 알려주십시오. –

답변

2

먼저, 두 가지의 서로 다른 이해하시기 바랍니다 사전에

감사합니다,

  1. 문서 .ready아약스는 완전히 independent .They는 서로 다른 목적을 위해 사용하고있다 .

  2. document.ready 기능은 당신의 dom아약스 어떤 연결되지 않은 완전히 loaded.It 때 호출됩니다.

  3. AjaxServer side에서 데이터를 가져 오는 데 사용됩니다. 당신이 당신의 ajax success 어떤 일을해야하는 경우, 다음을 수행하십시오

    ,

$(document).ready(function() { 

    alert("DOM is ready"); 

}); 

function ajaxFunction(){ 

    $.ajax({ 
     type: 'POST', 
     url: "Your URL", 
     data : "param="+"paramValue", 
     dataType: 'html', 
     success: function(result) { 
      doWhatEver(); 
     }, 
     error: function(e){ 
      //alert('Error in Processing'); 
     } 

    }); 
} 


function doWhatEver() { 
     // Do your work Here. 
} 

는 도움이되기를 바랍니다.