C# 回发ASP.NET后向客户端发送通知
我有一个C# 回发ASP.NET后向客户端发送通知,c#,asp.net,asynchronous,ado.net,C#,Asp.net,Asynchronous,Ado.net,我有一个UPDATESQL事务,它使用C#.NET 4.0连接到SQL Server数据库(我目前使用的是SqlCommand.ExecuteNonQuery,它不是异步的,所以我确定我需要更改它)。事务执行时间很长(大约一分钟)。我有ASP.NET应用程序(Web表单),我希望异步执行事务,同时让用户能够与应用程序交互(浏览页面)。在执行完成后,我希望向用户推送一种通知,告诉他事务已经完成 我意识到我的问题有两个部分:ADO.NET异步部分和触发应用程序在事务完成时向客户端推送通知的部分 实现
UPDATE
SQL事务,它使用C#.NET 4.0连接到SQL Server数据库(我目前使用的是SqlCommand.ExecuteNonQuery
,它不是异步的,所以我确定我需要更改它)。事务执行时间很长(大约一分钟)。我有ASP.NET应用程序(Web表单),我希望异步执行事务,同时让用户能够与应用程序交互(浏览页面)。在执行完成后,我希望向用户推送一种通知,告诉他事务已经完成
我意识到我的问题有两个部分:ADO.NET异步部分和触发应用程序在事务完成时向客户端推送通知的部分
实现这两个部分的最佳方法是什么?Signal将满足您的要求
或者在SQl操作之后,您可以从ExecuteOnQuery获取响应并将其保存到隐藏字段中,在客户端,您可以使用Jquery setInterval来检查隐藏字段值实际上,您可以使用Jquery对执行SQL事务的方法进行异步调用,然后在代码执行完成后将向用户返回消息。 有关更多信息,请查看以下示例 Jquery代码
$.post( "PageName.aspx/UpdateMethodName", {}) //you can replace method name
.done(function( data ) {
alert(data);
});
现在,在您的ASPX页面中,必须有一个用[WebMethod]属性修饰的静态方法
[WebMethod]
public static string UpdateMethodName() //method name will be called from jquery
{
// your
return "Message";
}
更多信息可以在这里找到
我希望帮助您可以使用Asp中的更新面板启动对服务器的异步调用。并在加载时显示某种gif。正如Dibu建议的那样,SignalR将是您的理想解决方案,您可以在ASP.net网站上找到许多文档/示例。但如果您不赞成对应用程序进行如此大的更改,请特别提及(您不想使用SignalR)。您希望用户能够在服务器处理任务(可以完成)时继续浏览web。当服务器任务完成时,它必须向…发送通知。。。?无法完成。将某些内容从服务器推送到客户端的概念根本不存在。是客户端(浏览器)启动与服务器的交互。对于此请求的SQL部分,您可以在本文中查看Asych过程执行:。根据@Dibu,您应该查看signar,以便在作业完成运行时通知客户机-当它们导航到不同的页面时,它应该在每个页面加载时重新连接,以便可以访问。但是,您可能需要进行某种重试,以防在页面加载完成时处于页面加载之间;或者,如果他们关闭浏览器再也不回来,您可能需要放弃这种方式。