我们有报告页面,用户可以在其中导出 CSV 格式的报告。在服务器中C# MVC
我们创造MemoryStream
并在数据转换后写入每一行,最后将响应作为File
。请求完成后,浏览器会自动下载该文件。由于生成报告需要很长时间,用户必须在阻塞状态下等待。
为了解决这个问题,我发送Async Ajax request
并将响应保存为CSV file
通过创建Blob URL
.
如果用户停留在报告页面直到下载所有报告,但如果用户从报告页面导航到其他页面,则效果很好Ajax request response
迷路。
所以我有以下一些问题
- 进行中会发生什么
Ajax request
页面重新加载时
- 页面重新加载是否取消在服务器上发起并正在进行的请求
- 如果浏览器已经重新加载页面,服务器响应会发生什么
- 有什么办法可以在重新加载后保持这样的请求,这需要进一步
当用户离开时,服务器将继续编译报告。
No.
它无处可落。浏览器有一个“新”页面,没有待处理的请求;它不知道任何先前的活动(HTML 是无状态的)。
不。也许您可以设置一个 onBeforeUnload 事件处理程序来警告用户并允许他们留在页面上。但有些浏览器会忽略该事件的任何事件处理程序,因此很难使其可靠。
您最好的选择可能是更改界面。在页面上放置一条通知,表明离开将取消他们正在等待的任何报告。并为用户提供一种简单的方法来了解他们的报告正在准备中,例如 html 加载 gif。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)