// JavaScript Document
var wait = 5;//等待时间
var timer = 10;//时间戳
var request = "cancel";
var global = 0;
//即时获取信息
function GetElectrical(id,htmlnode,obj,htmlstatus,control){
if(global == 0){
if(id.length == 0)
return false;
var Txt = IsButtonOrNode(obj);
//EnabledHtmlNode(obj,Txt);
document.getElementById(htmlnode).innerHTML = "正在加载中";
var url = "ResponseEvent.aspx?action=info&did="+id+"";
request = AutoExecuteRequest(url,obj,Txt);
}
var result = "";
if(request != "cancel"){
if(request.indexOf('G') != -1){
var html = request.split('G');
if(html.length == 8){
var status;
if(html[0] == "01"){
status = "合闸";
SetButtonOrNodeValue(control,"即时拉闸");
}
else{
status= "拉闸";
SetButtonOrNodeValue(control,"即时合闸");
}
result+="当前电压"+html[1]+"V<br />";
result+="当前电流"+html[2]+"A<br />";
result+="功率因素"+html[3]+"<br />";
result+="有功功率"+html[4]+"Kw<br />";
result+="无功功率"+html[5]+"Kvar<br />";
result+="当前电量"+html[6]+"Kw/h<br />";
document.getElementById(htmlstatus).innerHTML = " "+status;
}
}
document.getElementById(htmlnode).innerHTML = result;
}
}
//在特定的时间段内自动执行请求
function AutoExecuteRequest(url,obj,Txt){
global++;
document.getElementById(obj).disabled = true;
var requesturl = url +"&m="+timer+"";
request = XmlHttpPostMethodText(requesturl,false);
if(request == "cancel"){
if(timer == "0"){//时间戳终止
document.getElementById(obj).disabled = false;
document.getElementById(obj).value = Txt;
timer = 10;
global = 0;
}else{
document.getElementById(obj).value = Txt + timer;
timer = timer - 1;
window.setTimeout("AutoExecuteRequest('"+url+"','"+obj+"','"+Txt+"',1000);
}
}else{
document.getElementById(obj).value = Txt;
document.getElementById(obj).disabled = false;
global = 0;
}
return request;
}问题: 变量request 只能得到AutoExecuteRequest方法的第一次返回值,后面的就得不到了;
request = XmlHttpPostMethodText(url,false);//Ajax请求服务器相应
描述:现在JS的状态是这个样子的:
点击即时获取按钮 那么开始倒计时 这个时候有两种情况:
1.倒计时完毕 还是没有获得到值 那么本次所有请求终止
2.时间戳之内,获得到了值,那么按钮的value属性就是即时获取+当前倒计时的秒,并且可以再次点击,但是页面元素还是原来那样子,没有被刷新,这个时候你如果再
次点击一次按钮,马上就会刷新页面元素
未达到的效果:应该是ajax取到了值之后就马上刷新页面元素的,但是现在却还要点击一次
另:如果AutoExecuteRequest方法把函数名做参数传递,我该如何在AutoExecuteRequest方法里面调用
传递过来的函数呢?