I can't really be sure without looking at ajax.js, but if makeRequest() issues some async request, and calls alert() only after the a response for the request comes back, then it makes perfect sense that the alert inside drawChart() will show first.
On Sat, Jan 14, 2012 at 3:07 PM, Kevin <[email protected]> wrote: > In my test.html file I am using google charts and including another > file ajax.js which has all of the ajax code, the chart is supposed to > use the returned value from the ajax call. What is happening is the > alert inside of drawChart is being shown first, before the ajax call > is made!? I'm not sure why this is happening but it must have to do > with the sequence in which the code is loaded/executed. > > If I make two buttons tying one of them to the ajax call, and one of > them to the chart drawing, I am able to succesfully display the value > return from my call. However the code below executes in an undesired > sequence. Any help would be appreciated! > > Inside test.html is: > > > <html> > <head> > <script type='text/javascript' src='https://www.google.com/ > jsapi'></script> > <script type="text/javascript" language="javascript" > src="ajax.js"></script> > <script type='text/javascript'> > var dummy; > var temp;; > google.load('visualization', '1', {packages:['gauge']}); > google.setOnLoadCallback(drawChart); > function drawChart() { > makeRequest();//here is the ajax call that populates a global > variable > setTimeout("alert('hello')",20000); > alert("Inside drawChart()" + result);//this alert shows up before > the one in the makeRequest(function). I obviously don't understand the > sequence in which the code is executed > var data = new google.visualization.DataTable(); > data.addColumn('string', 'Label'); > data.addColumn('number', 'Value'); > data.addRows([ > ['Temp', parseInt(result)] > ]); > > var options = { > width: 400, height: 120, > redFrom: 90, redTo: 100, > yellowFrom:75, yellowTo: 90, > minorTicks: 5 > }; > > var chart = new > google.visualization.Gauge(document.getElementById('chart_div')); > chart.draw(data, options); > document.getElementById('test'); > } > </script> > </head> > <body> > <div id='chart_div'></div> > </body> > </html> > > -- > You received this message because you are subscribed to the Google Groups > "Google Visualization API" group. > To post to this group, send email to > [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-visualization-api?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google Visualization API" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-visualization-api?hl=en.
