MVC:你离开 - 我停止或:你离开 - 我不在乎?

时间:2013-05-28 14:47:28

标签: asp.net asp.net-mvc

用户上传Excel工作表,这会触发一个可能需要一段时间的流程:工作表已保存(快速)然后处理(需要一段时间并与客户端进行独立通信)。之后,返回一个视图。

如果用户上传文件并立即关闭浏览器会发生什么。触发过程是否会继续,直到它发现没有人将视图返回到?

我想一旦流程被触发,服务器就不知道/关心客户端是否仍处于活动状态,直到下次服务器与客户端通信,因此服务器将继续工作。但我不确定..感谢您对这个新手问题的意见!

3 个答案:

答案 0 :(得分:0)

可能是一个不同的问题,而不是答案,但是如果用户厌倦了等待非常慢的响应并开始锤击刷新,那么你会怎么做?例如,重新提交?

通常,处理此问题的一个好方法是将慢进程分离以运行异步,然后返回到客户端,然后客户端可以轮询进度。

答案 1 :(得分:0)

很容易自己尝试。

但由于HTTP是无状态的,因此Web服务器无法安全地检测到浏览器已关闭。

但是如果您确实想要检测到浏览器仍处于打开状态,您可以在进行实际处理时使用Web套接字或长轮询请求。

答案 2 :(得分:0)

即使客户端刷新并上传新文件(旧请求仍在运行),该过程仍将继续。小心,它可能是冲突的根源!