首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >取消ASP.NET回调处理

取消ASP.NET回调处理
EN

Stack Overflow用户
提问于 2011-06-20 13:42:15
回答 3查看 2.4K关注 0票数 2

我正在使用基于以下内容的代码加载一个网格视图:

http://msdn.microsoft.com/en-us/library/ms366515%28v=VS.80%29.aspx

我使用回调来填充网格,有时会有很多数据或者用户想要取消。

当用户点击取消时,如何在服务器上取消正在处理的回调??

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-20 14:32:47

AFAIK,启动后不能取消服务器端回调处理。至多可以有一些忽略回调结果的客户端(浏览器)端逻辑。

无论如何,我建议您使用ASP.NET AJAX (UpdatePanelScript Services)而不是ICallbackEventHandler。它使用起来非常简单,而且更加灵活。此外,您还可以选择取消回调:请参阅取消更新面板回调的this article (请注意,cancel实际上意味着停止等待(&忽略)回调结果,服务器端处理将发生)。

票数 2
EN

Stack Overflow用户

发布于 2011-06-20 14:53:52

进行了相当广泛的搜索,发现Cancel Server Tasks with ASP.NET & AJAX是可能的

虽然我不擅长AJAX,但我找到了一些对你有帮助的链接,

下面是如何使用Canceling Server Tasks with ASP.NET & AJAX,下面是一个forum thread,介绍与您的问题类似的内容。

希望它能帮上忙!

票数 3
EN

Stack Overflow用户

发布于 2011-06-20 15:03:12

一旦你向服务器发起了一个请求,客户端就无法取消它。忽略任何可能的"cancellable方法“的机制,你已经向服务器发起了一个请求。任何进一步的通信都将导致新的请求,因此原始请求将继续,直到它完成。请记住,HTTP是一种无状态协议,每个请求都不知道任何先前的请求,因此,它如何取消先前的请求?

你最好的办法就是忽略服务器的响应,如果你真的需要取消一个长时间运行的任务,这些任务可能还在服务器上处理,你需要自己提供支持,因为web服务器本身并不支持它。要做到这一点,您可能需要某种方法来跨多个http请求保持任务状态,并让原始请求(运行该任务的那个请求)监视某种取消标志。

不过请记住,在上面的场景中,您不会取消请求,而是取消请求正在运行的任务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6407227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档