Javascript 在onload中调用方法时重置值

Javascript 在onload中调用方法时重置值,javascript,xml,ajax,Javascript,Xml,Ajax,我从XML加载数据,XML设置了一些值。我面临的问题是,当我在GetData方法中设置值时。在onload之后,vars声明lose there值。我做错了什么?如何使值保持在全局范围内定义的加载数据的变量中?从getData()函数中,如果要将数据设置为步骤、卡路里和chipsAmount变量,则在该函数之外无法访问这些变量。您必须在函数外部定义这三个变量,以便它们在全局范围内。将数据加载到的变量是否在全局范围内定义?从getData()函数中,如果要将数据设置为步骤、卡路里和chipsAmo

我从XML加载数据,XML设置了一些值。我面临的问题是,当我在GetData方法中设置值时。在onload之后,vars声明lose there值。我做错了什么?如何使值保持在全局范围内定义的加载数据的变量中?从getData()函数中,如果要将数据设置为步骤、卡路里和chipsAmount变量,则在该函数之外无法访问这些变量。您必须在函数外部定义这三个变量,以便它们在全局范围内。

将数据加载到的变量是否在全局范围内定义?从getData()函数中,如果要将数据设置为步骤、卡路里和chipsAmount变量,则在该函数之外无法访问这些变量。您必须在函数外部定义这三个变量,以便它们在全局范围内。

是否异步加载数据?如果是这样,那么在您尝试设置这些值时,这些值可能不存在,因此您应该与脚本同步加载它们。否则我不确定我是否完全理解你的问题。是的,我正在同步加载问题主要是我需要将变量设置为onload,以便其他函数可以使用它们。你正在异步加载数据吗?如果是这样,那么在您尝试设置这些值时,这些值可能不存在,因此您应该与脚本同步加载它们。否则我不确定我是否完全理解你的问题。是的,我正在同步加载问题主要是我需要将变量设置为onload,以便其他函数可以使用这些变量。在函数中使用的变量不是使用var声明的,而是由全局对象(即窗口)拥有的和确实可在别处访问,无论它们是否已声明为全局变量。在未使用var声明的函数中使用的变量归全局对象(即窗口)所有,并且确实可在别处访问,无论它们是否已声明为全局变量
window.onload = init;

function init(){
   initializeEventHandlers();
   getData(formatDate(new Date));
   gotoDate('today');
}

//scripts that manage the UI for tracker.aspx
var dCurrentDate, sCurrentDate, sCurrentDayData, stepsVal, chipsVal, dayValue, dateValue, caloriesVal;
var fCurrentValue = 0;
var bAnimating, bSliding = false;

   //scripts that manage the UI for tracker.aspx
    var dCurrentDate, sCurrentDate, sCurrentDayData, stepsVal, chipsVal, dayValue, dateValue, caloriesVal;
    var fCurrentValue = 0;
    var bAnimating, bSliding = false;

getData(d)
{
  steps = 5;
  calories = 10;
  chipsAmount = 3;
}


//I expect this to be 5+1, but it actually through an exception. I am wondering if its cause steps is not yet loaded. What can I do to make this actually 5 + 1.
steps + 1;