微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 正在进行的Ajax请求页面重新加载

我们有报告页面,用户可以从CSV导出报告.在C#MVC中的服务器上,我们创建MemoryStream并在数据转换后写入每一行,最后将响应作为File发送.完成请求后,浏览器会自动下载此文件.由于报告需要很长时间才能生成,因此用户必须在阻塞状态下等待它.
为了解决这个问题,我发送了Async Ajax请求,并通过创建Blob URL将响应保存为CSV文件.
这很好用如果用户停留在报告页面上,直到所有报告都被下载,但如果用户从报告页面导航到其他页面,则Ajax请求响应会丢失.
所以我有一些以下问题

>正在进行的Ajax请求在页面重新加载时会发生什么
>页面重新加载取消在服务器上启动和正在进行的请求
>如果浏览器已经重新加载页面,服务器响应会发生什么
>有没有办法在重新加载之后保持这种请求,这需要进一步

解决方法

>当用户导航时,服务器将继续编译报告.
>不.
>无处可去.浏览器有一个“新”页面,没有待处理的请求;它不知道任何先前的活动( HTML是无状态的).
>不.也许您可以安装一个onBeforeUnload事件处理程序,它会警告用户并允许他们留在页面上.但是有些浏览器会忽略该事件上的任何事件处理程序,因此很难使其可靠.

你最好的选择可能是界面变化.在浏览页面上发布通知将取消他们正在等待的任何报告.并为用户提供一种简单的方法来了解他们的报告正在准备中,例如html加载gif.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐