问题描述
我有一个网页,循环访问某页,如果返回值不为0,则弹出一个窗口。代码如下:<scriptlanguage="javascript"type="text/javascript">varxmlHttp;functioncreateXMLHttpRequest(){if(window.ActiveXObject){xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}elseif(window.XMLHttpRequest){xmlHttp=newXMLHttpRequest();}}functiondoRequestUsingGET(){createXMLHttpRequest();varqueryString="Pop/CheckNewCaller.aspx";xmlHttp.onreadystatechange=handleStateChange;xmlHttp.open("GET",queryString,true);xmlHttp.send(null);}functionhandleStateChange(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){alert(xmlHttp.responseText);if(xmlHttp.responseText!="0"){window.open("Pop/PopWindow.aspx?Phone="+xmlHttp.responseText,'',"");}}}}setInterval("doRequestUsingGET()",2000);</script>访问的Pop/CheckNewCaller.aspx代码如下:protectedvoidPage_Load(objectsender,EventArgse){if(Application["Caller"]!=null){DataTabledt=((DataSet)Application["Caller"]).Tables["Caller"];if(dt.Rows.Count>0){Response.Write(dt.Rows[0]["Phone"].ToString());dt.Rows.RemoveAt(0);Response.End();}else{Response.Write("0");Response.End();}}}上面Application里的DataSet是在Global.asax里初始化的,代码如下:voidApplication_Start(objectsender,EventArgse){//在应用程序启动时运行的代码DataTablecallTable=newDataTable("Caller");callTable.Columns.Add("Phone",typeof(String));DataSetds=newDataSet();ds.Tables.Add(callTable);Application["Caller"]=ds;}网页打开后。xmlhttp循环访问CheckNewCaller页,这样一直返回值0.因为DataSet里没有值。DataSet里的值是通过另一个网页(AddNewCaller.aspx)来插入值的,代码如下:protectedvoidPage_Load(objectsender,EventArgse){if(Application["Caller"]!=null&&Request.QueryString["Phone"]!=null){DataTabledt=((DataSet)Application["Caller"]).Tables["Caller"];DataRowdr=dt.NewRow();dr["Phone"]=Request.QueryString["Phone"].ToString();dt.Rows.Add(dr);}}****************************************************问题是这样的,页面一开始时都可以2秒钟访问一次CheckNewCaller.aspx页,但是当我访问AddNewCaller.aspx来增加值后,javascript的xmlhttp就不访问CheckNewCaller.aspx页了。不知道什么原因。
解决方案
解决方案二:
对js了解的不是很清楚,关注中^^顶上去
解决方案三:
增加值一定要用AddNewCaller.aspx来完成么?
解决方案四:
UP
解决方案五:
没看出来,等高手
解决方案六:
你怎么知道没有再访问AddNewCaller.aspx?
解决方案七:
建议1,增加循环访问的时间10s看看是什么效果2,window.open改成其他方式比如加一个div标签,让div.innerHTML=xmlHttp.responseText看看是什么效果
解决方案八:
关注!
解决方案九:
你怎么知道没有再访问AddNewCaller.aspx?========================================因为我进行着调试我中断。开始时都正常,断点什么都正常。一但访问了AddNewCaller.aspx,那么断点就没用了。window.open改成其他方式比如加一个div标签,让div.innerHTML=xmlHttp.responseText看看是什么效果=====================我用alert也试过了。一样。
解决方案十:
window.open跟alert区别不大
解决方案十一:
为什么执行了一下,它就不再访问那一页了呢?
解决方案十二:
关注中,高手们快点来解决问题吧,哈哈```
解决方案十三:
uuuppp...
解决方案十四:
up