我正在使用带有C#的ASP.NET MVC 3,我有一个大约需要10分钟才能完成的过程。我需要一些帮助,我怎么能显示一些界面(进度条等)。
如果用户关闭浏览器会发生什么?我的过程不应该停止。
如果其他用户试图打开进程页面会发生什么?
我开始搜索jQuery进度条,但得到了这些问题并寻求帮助。
谢谢
答案 0 :(得分:1)
如果您的流程需要10分钟才能完成,那么您必须在背景上进行工作,并将结果保留在某个地方以显示它。
第一个问题:如果用户关闭浏览器会发生什么事情,要解决这个问题,您需要创建一个系统来完成背景工作并让浏览器继续运行。如果不能完成一个完整的课程来制作你的作品,一个简单的thead可以做同样的想法 - 但是不太灵活。
第二个问题:如何避免新流程页面的启动。 您可以使用互斥锁解决此问题。您设置了一个具有特定名称的互斥锁,并在完成作业后关闭它,10分钟后。在中间,如果某个用户尝试重新运行相同的进程,您会看到互斥锁已锁定,并且您向他显示要等待的消息。
你需要在某个地方保存结果信息,例如,假设你做了10分钟的工作,然后将结果存储在某个地方,用户看到结果以及何时生成它们,如果他喜欢可以重新运行程序。
有了这个,我描述你不需要完全禁用页面,只需要一条结果仍在运行的消息,或者每30秒自动刷新一次页面以查看它们是否已完成。