.利用AJAX及时获取后台值的一个问题,高手进来帮忙看看.小男子在这有礼了..@#$%^&*(()_<>"{救命啊!!!
后台的类里有个int类型变量Percent不断地+1(可以确定在程序运行的时候值是不断增加的)
前台服务器端控件button在Page_Load的代码
btnUpload.Attributes.Add( "onclick ", "javascript:window.setTimeout(startRequest(),1000); ");//这里是调用XMLHttp的 startRequest()
通过添加按钮的客户端JS脚本触发每1秒访问一次Percent这个变量代码如下:
Response.Write(我的类名.Percent.ToString());//返回给XMLHttp
//-----------------------------这里是startRequest()的JS脚本
var xmlHttp;
function createXMLHttpRequest() {
//如果是IE,用activexobject
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP ");
}
//如果其它浏览器就用XMLHttpRequest
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
//开始函数
function startRequest() {
createXMLHttpRequest();
//创建一个新的http请求,并指定此请求的方法、URL以及验证信息
xmlHttp.open( "GET ", 'GetFileInfo.aspx ', true);
//指定当readyState属性改变时执行的函数
xmlHttp.onreadystatechange = handleStateChange;
//发送请求到http服务器并接收回应
xmlHttp.send(null);
}
function handleStateChange() {
//4数据接收完毕
if(xmlHttp.readyState == 4) {
//200返回请求状态为OK
if(xmlHttp.status == 200) {
//弹出对话框,并输入simpleResponse.xml文件的文本内容
try{
document.all[ 'fileUploadState '].innerHTML=xmlHttp.responseText;
}
catch(e)
{
document.all[ 'fileUploadState '].innerHTML=e;
}
}
}
}
//------------------------------
***********************************************************************
通过不断地调试:
1.确定Percent这个变量在不断变化
2.XMLHTTP访问后台时候第1次读取Percent成功并且在前台显示后提示传递的参数无效..
我的JS代码就上面的再也没了.
3.总结一下我这个做的是文件上传,现在已经可以通过IO实时获取当前文件上传的进度也就是变量Percent(百分比),现在用上面的XMLHTTP代码访问这个变量并且在前台DIV里显示总是显示0,并且提示JS错误传递的参数无效.以前都是这样访问后台数据的没出现过问题.所以现在很郁闷
高手们都来看看吧.100分!解决问题后再散100分!帮顶的都有分~~大家快来救命啊~~
------解决方案--------------------受不了 LZ 小男子??
------解决方案--------------------............稀里哗啦吐了
------解决方案--------------------e~~
------解决方案--------------------............稀里哗啦吐了
------解决方案--------------------那就来接点分吧
------解决方案--------------------帮顶 接分
------解决方案--------------------俺专程进来吐的...
------解决方案--------------------setTimeout( "startRequest() ",1000)