用window.setInterval这样的JS代码5秒调用一次,结果IE报警:
该页面上的脚本造成ie运行缓慢,如果继续运行你的计算机会变得更慢?
代码如下:
<body onload="gLStat()">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="Svs_Login.asmx" />
</Services>
</asp:ScriptManager>
<script type="text/javascript">
function gLStat(){
var ws=new Svs_Login();
ws.gLoginState(onCompleted); function onCompleted(result) {
var ar=result.split(",");
if(ar[0]=="true")
{
document.getElementById("div_Login").style.display='none';
document.getElementById("div_Logout").style.display='';
txt_msgCount.innerHTML = ar[5];
}
else
{
document.getElementById("div_Login").style.display='';
document.getElementById("div_Logout").style.display='none';
}
}
window.setInterval(gLStat(), 5000);
}
</script>
<div id="div_Login">请登录</div>
<div id="div_Logout">您已经登录,当前共有<span id="txt_msgCount"></span>条未读消息</div>
</form>
</body>webservice为Svs_Login.asmx,是没有问题的,返回值正确,也能接收并显示,就是运行起来很慢咋办?
是不是用scriptmanager效率会比自己写xmlhttprequest对象低很多?
InlineScript="true"不管用,结果更慢
该页面上的脚本造成ie运行缓慢,如果继续运行你的计算机会变得更慢?
代码如下:
<body onload="gLStat()">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="Svs_Login.asmx" />
</Services>
</asp:ScriptManager>
<script type="text/javascript">
function gLStat(){
var ws=new Svs_Login();
ws.gLoginState(onCompleted); function onCompleted(result) {
var ar=result.split(",");
if(ar[0]=="true")
{
document.getElementById("div_Login").style.display='none';
document.getElementById("div_Logout").style.display='';
txt_msgCount.innerHTML = ar[5];
}
else
{
document.getElementById("div_Login").style.display='';
document.getElementById("div_Logout").style.display='none';
}
}
window.setInterval(gLStat(), 5000);
}
</script>
<div id="div_Login">请登录</div>
<div id="div_Logout">您已经登录,当前共有<span id="txt_msgCount"></span>条未读消息</div>
</form>
</body>webservice为Svs_Login.asmx,是没有问题的,返回值正确,也能接收并显示,就是运行起来很慢咋办?
是不是用scriptmanager效率会比自己写xmlhttprequest对象低很多?
InlineScript="true"不管用,结果更慢
解决方案 »
- 请问怎样响应propertygrid控件中集合编辑器的确定事件?
- 如何将DataTable表存入数据库呢?
- datagridview 重复读取的问题
- 这行代码看不懂!
- shiftjis与utf8的问题
- VS2005输入法的问题,无奈!
- 十分急(100分)!!上传一个歌曲文件( mp3,wav,wma .etc )如何取得歌曲的播放时间并插入数据库
- 在linux下怎么用mono GTK# 编写简单的计算器~!!!! 急用
- 怎样让我的.net环境能执行.cs的文件?
- 为什么我更新了 IE 到 11 版本了,在 C# 里面还是引用不到 mshtml.IHTMLIFrameElement3
- 想做门户网站,怎么下手?
- 正则表达式问题,100分
你说的操作的数据过长是指什么?webservice里面的处理过程太长吗?因为要从数据库里读一些东西。
自己写xmlhttprequest对象会不会就不报这个了??
你说的操作的数据过长是指什么?webservice里面的处理过程太长吗?因为要从数据库里读一些东西。
如果手写xmlhttprequest对象会不会就没这问题了?
有过这方面应用的讲讲啊,不用setInterval可以做到几秒钟查询一次吗?
xmlhttp.open("GET", "Svs_Login.asmx/gLoginState", true);
这一句就out of memory了
用顶楼的代码,window.setInterval(gLStat(), 5000); 这句话有问题
不是5秒,而是连续不断地一直在回调
谁知道这是怎么回事吗?
function gLStat(){
var ws=new Svs_Login();
ws.gLoginState(onCompleted);
<---------后面的大括号应该一定到这里吧
function onCompleted(result) {
var ar=result.split(",");
if(ar[0]=="true")
{
document.getElementById("div_Login").style.display='none';
document.getElementById("div_Logout").style.display='';
txt_msgCount.innerHTML = ar[5];
}
else
{
document.getElementById("div_Login").style.display='';
document.getElementById("div_Logout").style.display='none';
}
}
window.setInterval(gLStat(), 5000);
} <----------------这里的大括号应该移动到前面去吧。
</script>
我现在把window.setInterval(gLStat, 5000);拿到大括号外面就行了。至于onCompleted写在哪里无所谓。
一开始我是写在外面的,但老是报window.setInterval(gLStat(), 5000);缺少第一个参数,后来放到大括号里就不报错了。
现在搞明白window.setInterval()调用的第一个参数是gLStat,要去掉()才可以
马上结帖给分