+ -
当前位置:首页 → 问答吧 → AjaxPro.2.dll究竟是不是异步调用?为什么浏览器会假死?

AjaxPro.2.dll究竟是不是异步调用?为什么浏览器会假死?

时间:2007-04-25

来源:互联网

我在项目中使用了AjaxPro.2.dll,在首页每隔5秒取在线人数,每隔半分钟刷新待办工作量。

下面是后台方法:

[AjaxPro.AjaxMethod]
public   string   GetOnlineCount()
{
        //取在线人数
}

[AjaxPro.AjaxMethod]
public   string   GetWaitWork()
{
        //从数据库取登录用户的新邮件、待办工作等
}


客户端:
function   setOnlineCount()
{
        var   onlineCount;
        try
        {
                onlineCount   =   PageView_V_Top.GetOnlineCount().value;  
        }
        catch(err){}
        if(onlineCount   ==   null)
        {
                window.clearTimeout(timerOnlineCount);
                window.clearTimeout(timerWaitWork);
                window.top.location   =   "login.htm ";
                return   false;
        }
        document.all.onlineCount.innerText   =   onlineCount;
        timerOnlineCount   =   setTimeout(setOnlineCount,   5000);
}
               
function   setWaitWork()
{
        var   waitWork;
        try
        {
                waitWork   =   PageView_V_Top.GetWaitWork().value;
        }
        catch(err){}
        if(waitWork   ==   null)
        {
                window.clearTimeout(timerOnlineCount);
                window.clearTimeout(timerWaitWork);
                window.top.location   =   "login.htm ";
                return   false;
        }
        document.all.waitWork.innerText   =   waitWork;
        timerWaitWork   =   setTimeout(setWaitWork,   30000);
}

然后将body的onload设置为 "setOnlineCount();setWaitWork(); "


我的问题是,当待办工作量较多时,大约半分钟浏览器就要假死一会儿,到网上查了一下,好像说是异步方法不会出现假死情况,难道AjaxPro.2.dll不是异步调用吗?

另外这样调用后台方法的返回值偶尔会出现null,虽然这种情况比较少,但是为什么呢?

急盼赐教。

作者: camin   发布时间: 2007-04-25

你这样使用的是同步调用的方式,不是异步调用,要用异步调用,要这样写:
function   setOnlineCount()
{
PageView_V_Top.GetOnlineCount(GetOnLineCountCallBack);  
}

写一个回调函数:
function   GetOnLineCountCallBack(res)
{
      onlineCount   =   res.value;
}

这样就是异步调用了~~我开始的时候也是为这个头痛了一下哦

作者: linsoo   发布时间: 2007-04-26

同意楼上的

作者: cloudy8   发布时间: 2008-03-19

同意,要先搞清楚同步异步的调用方式是不同的,你可以看看commom.ashx文件就知道了

作者: cloudy8   发布时间: 2008-04-20

我顶~

作者: w395115323   发布时间: 2011-02-18