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习语,可以用来转换数字。)它很管用!非常感谢你!我为这个小问题发疯了。这个解释帮助我理解我做错了什么。它起作用了!非常感谢你!我为这个小问题发疯了。这个解释帮助我理解我做错了什么。非常感谢你的回答。这正是我做错的。非常感谢你的回答。这正是我做错的。