首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

.利用AJAX及时获取后台值的一个有关问题,来帮忙看看.小男子在这有礼了.@#$%^&(()_<>"{!

2012-01-28 
.利用AJAX及时获取后台值的一个问题,高手进来帮忙看看.小男子在这有礼了..@#$%^&*(()_{救命啊!!!后台的

.利用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)


[解决办法]
而且貌似你的程序如果有缓存的话,就第一次有效,以后就。。。。。
[解决办法]
JF
[解决办法]
通过添加按钮的客户端JS脚本触发每1秒访问一次Percent这个变量

也不是通过setTimeout实现的,要用setInterval
[解决办法]

[解决办法]
人才!!
[解决办法]
btnUpload.Attributes.Add( "onclick ", "javascript:window.setTimeout(startRequest(),1000); ");
改为:
btnUpload.Attributes.Add( "onclick ", "javascript:window.setInterval( "startRequest() ",1000); ");
至于原因请在网上找找资料看看setInterval和setTimeout的区别
[解决办法]
xmlHttp.open( "GET ", 'GetFileInfo.aspx ', true);
改为:
xmlHttp.open( "GET ", 'GetFileInfo.aspx? '+Math.random(), true);
避免IE缓存带来的问题
[解决办法]
使用 setInterval 还出现找不到fileUploadState的问题?
[解决办法]
在运行的时候看下页面源码,看有没有什么问题(HTML数据是否正常)
如果正常那么进行下面的测试:
document.all[ 'fileUploadState '].innerHTML=xmlHttp.responseText;
改为
alert(xmlHttp.responseText);
现在测试,先把setInterval的第2个参数设大点,不然就要从进程里关页面了,嘿嘿...


[解决办法]
搂主,我给你发了消息的,看看消息吧
[解决办法]
wo shi lai jie fen de
[解决办法]
每秒发一次请求,有并发问题吧
[解决办法]
关注+学习!

热点排行