Dip*_*gre 4 javascript c# ajax jquery
我们有报告页面,用户可以从CSV导出报告.在服务器中,C# MVC
我们MemoryStream
在数据转换后创建并写入每一行,最后发送响应为File
.完成请求后,浏览器会自动下载此文件.由于报告需要很长时间才能生成,因此用户必须在阻塞状态下等待它.
为了解决这个问题,我通过创建发送Async Ajax request
和保存响应.
这很好用如果用户停留在报告页面上,直到所有报告都被下载,但是如果用户从报告页面导航到其他页面则会丢失.
所以我有一些以下问题 CSV file
Blob URL
Ajax request response
Ajax request
在页面重新加载过程中会发生什么当用户导航时,服务器将继续编译报告.
没有.
无处可去.浏览器有一个"新"页面,没有待处理的请求; 它不知道任何先前的活动(HTML是无状态的).
不可以.也许您可以使用onBeforeUnload事件处理程序来警告用户并允许他们留在页面上.但是有些浏览器会忽略该事件上的任何事件处理程序,因此很难使其可靠.
你最好的选择可能是界面变化.在浏览页面上发布通知将取消他们正在等待的任何报告.并为用户提供一种简单的方法来了解他们的报告正在准备中,例如html加载gif.