日期:2014-05-17  浏览次数:20433 次

ASP.NET 异步事件
    hi,dear,向大家问一个问题:
     一个页面Home.aspx已经加载到客户端一段时间,这时Home.aspx.cs里一个异步事件完成,怎么将该事件通知到客户端呢(比如调用一个客户端的函数)?
ASP.NET asynchronous 事件?后台与前台交互

------解决方案--------------------
引用:
    hi,dear,向大家问一个问题:
     一个页面Home.aspx已经加载到客户端一段时间,这时Home.aspx.cs里一个异步事件完成,怎么将该事件通知到客户端呢(比如调用一个客户端的函数)?

用ajax异步传输数据 加载完后 返回特殊的值 
------解决方案--------------------
引用:
    hi,dear,向大家问一个问题:
     一个页面Home.aspx已经加载到客户端一段时间,这时Home.aspx.cs里一个异步事件完成,怎么将该事件通知到客户端呢(比如调用一个客户端的函数)?


你这样是很难实现的
异步事件通过 ajax 来实现,用ajax异步方式去调用你需要异步的方法

------解决方案--------------------
引用:
   hi,u011096386 
   之前看到一个方法,可注册异步回调,类似:
   
cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "MyFunctionCallback", "context");
            callbackScript = "function MyFunction(arg, context)" + "{ " + cbReference + ";}";
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyFunction", callbackScript, true);

   但促发事件MyFunction的是客户端,有没有一种方法实现在服务器端促发事件呢?


服务器向客户端发消息,可http是无状态的,只能是 通过客户端向服务发请求
如果非要向客户端发消息,可能就得通过activex或flash的插件了
------解决方案--------------------
服务端的异步结束把数据写到数据库.
客户端使用Timer通过AJAX定时轮询服务端.
轮询时上传参数参与比较检查异步是否结束.如果未结束,继续轮询,如果结束,停止轮询并做你想做的.
------解决方案--------------------
直接ajax调用那个函数