Javascript和Ajax—在间隔中包含一个calledback变量

Javascript和Ajax—在间隔中包含一个calledback变量,javascript,ajax,callback,intervals,Javascript,Ajax,Callback,Intervals,具有以下代码: <script type="text/javascript"> var chargeup = 0; var flag1 = "no"; var stored = <?php print $x_row['watts']; ?>; // Gets wstored (previous value) from DB. var charge = <?php print $charge; ?> + stored; window.onload = funct

具有以下代码:

<script type="text/javascript">
var chargeup = 0;
var flag1 = "no";
var stored = <?php print $x_row['watts']; ?>; // Gets wstored (previous value) from DB.
var charge = <?php print $charge; ?> + stored;
window.onload = function chargeT1() {
timer = setInterval(function chargeT2 () {
    charge = charge+<?php print $n_gr; ?>; // $n_gr = 1; 
        if (flag1 !="no"){
            charge = chargeup;
        }
    document.getElementById('charge').innerHTML = charge;
    flag1 = "no";
}, 1000);
}
</script>

var chargeup=0;
var flag1=“否”;
存储的变量=;//从数据库中获取wstored(以前的值)。
var费用=+存储;
window.onload=函数chargeT1(){
定时器=设置间隔(功能充电2(){
费用=费用+;/$n_gr=1;
如果(flag1!=“否”){
充电=充电;
}
document.getElementById('charge')。innerHTML=charge;
flag1=“否”;
}, 1000);
}
由于$n_gr=1,我们得到一个每秒加+1的“计时器”

我正在努力实现的目标: 我想从回调函数中返回一个“flag1='yes';”和一个新的“chargeup”值,该函数将变量“charge”更改为“chargeup”,并继续每秒添加+1

例如:在力矩“t”中,电荷值为“100”,“t+1”中为101,“t+2”中为102,。。。一个事件触发回调函数并返回“chargeup=10”和“flag1=yes”,因此“charge”更改为10,并从10开始每秒添加+1:t+3是11,t+4是12

我不知道我做错了什么,但当回调函数返回时,例如,10,我得到的费用是10,然后101110111

这是我的callback函数:

function useHttpResponse (){
   if (http.readyState == 4) {
      if (http.status == 200) { 
      var timeWatts = http.responseXML.getElementsByTagName("upwatts")[0];
      chargeup = timeWatts.childNodes[0].nodeValue; //example: returns a value of 10
      flag1 = "yes";
      } else {
         document.getElementById('showbuy').innerHTML='<img src="anim.gif">';
             }
      }
  }
函数useHttpResponse(){
如果(http.readyState==4){
如果(http.status==200){
var timeWatts=http.responseXML.getElementsByTagName(“upwatts”)[0];
chargeup=timeWatts.childNodes[0].nodeValue;//示例:返回值10
flag1=“是”;
}否则{
document.getElementById('showbuy')。innerHTML='';
}
}
}
我真的卡住了。任何想法或建议都将受到欢迎。提前感谢您抽出时间。

试试换衣服

    charge = charge+<?php print $n_gr; ?>; // $n_gr = 1; 
charge=charge+;//$n_gr=1;

charge=(+charge)+(+);//$n_gr=1;
尝试更改

    charge = charge+<?php print $n_gr; ?>; // $n_gr = 1; 
charge=charge+;//$n_gr=1;

charge=(+charge)+(+);//$n_gr=1;

它看起来像是一个字符串,所以
费用
是一个字符串,
(string)费用+(int)$n\u gr
=>
字符串
。当JavaScript弱类型遇到重载
+
时,就会发生这种情况

这可以通过在某处使用数字强制来修复。将以下行之一更改为

charge = +charge + +<?php print $n_gr; ?>;

(一元
++
是公认的JS习语,用于数字转换)。

它看起来像是一个字符串,所以
charge
是一个字符串,
(string)charge+(int)$n_gr
=>string。当JavaScript弱类型遇到重载
+
时,就会发生这种情况

这可以通过在某处使用数字强制来修复。将以下行之一更改为

charge = +charge + +<?php print $n_gr; ?>;

(一元
+
是公认的JS习语,可以用来转换数字。)

它很管用!非常感谢你!我为这个小问题发疯了。这个解释帮助我理解我做错了什么。它起作用了!非常感谢你!我为这个小问题发疯了。这个解释帮助我理解我做错了什么。非常感谢你的回答。这正是我做错的。非常感谢你的回答。这正是我做错的。