关于JS调用httpHandler一般处理程序时的问题
在一个网站里,我写了一个一般处理程序 ProcessRequest
里面主要是往XML里写入一个字符串交给前台JS解析
因为不是在笔记本上开发的 所以只能抄出一些主要的地方了
一般处理程序里代码如下:
context.Response.ContentType = "text/xml";
string callback = "";
public void ProcessReuqest(HttpContext context)
{
XmlWriter writer = null;
try{
XmlSerializer serializer = new XmlSerializer(callback.GetType());
writer = new XmlTextWriter(context.Response.OutputStream,Encoding.UTF8);
serializer.Serialize(writer,callback);
}finally{
if(writer!=null){
writer.Close();
}
}
}
//往callback字符串绑定数据的方法忽略,会绑定这样的数据:"1,2,3,4,5,6,1,4,6,2,7,9,3"
JS代码如下:
var xmlHttpRequest;
function createXmlHttpRequest(){
if(window.xmlHttpRequest){
xmlHttpRequest = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function getIncidentNumber(){
var url = "ProcessReuqest.ashx";
createXmlHttpRequest();
xmlHttpRequest.onreadystateChange = function(){
var dom = xmlHttpRequest.responseXML;
var arr = dom.getElementsByTagName("string")[0].text; //获取节点数据
var array = arr.split(','); //分割字符串
for(var i=0;i<10;i++){ //循环绑定值
document.getElementById("value"+(i+1)).innerHTML = array[i];
}
}
xmlHttpRequest.open("GET",url,true);
xmlHttpRequest.send(null);
setTimeout(getIncidentNumber,3000); //定时器 3秒调用一次本函数
}
原意是想3秒从一般处理程序得到数据,通过DOM对象修改到页面上,现在的问题是没有达到效果,也就是不刷新页面,就不能重新获得数据 代码好像也没啥大问题了,谁能教下该怎么做?
不使用服务器控件!!!