Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面重新加载时进行中的Ajax请求会发生什么情况_Javascript_C#_Jquery_Ajax - Fatal编程技术网

Javascript 页面重新加载时进行中的Ajax请求会发生什么情况

Javascript 页面重新加载时进行中的Ajax请求会发生什么情况,javascript,c#,jquery,ajax,Javascript,C#,Jquery,Ajax,我们有报告页面,用户可以从中导出CSV格式的报告。在C#MVC中的服务器上,我们创建MemoryStream并在数据转换后写入每一行,最后以文件的形式发送响应。请求完成后,浏览器将自动下载此文件。由于生成报告需要很长时间,用户必须在阻塞状态下等待它。 为了解决这个问题,我发送了异步Ajax请求,并通过创建bloburl将响应保存为CSV文件 如果用户在下载所有报告之前一直停留在报告页面上,但如果用户从报告页面导航到另一个页面Ajax请求-响应迷路,则此操作可以正常工作。 所以我有以下几个问题 在

我们有报告页面,用户可以从中导出CSV格式的报告。在
C#MVC
中的服务器上,我们创建
MemoryStream
并在数据转换后写入每一行,最后以
文件的形式发送响应。请求完成后,浏览器将自动下载此文件。由于生成报告需要很长时间,用户必须在阻塞状态下等待它。
为了解决这个问题,我发送了
异步Ajax请求
,并通过创建
bloburl
将响应保存为
CSV文件
如果用户在下载所有报告之前一直停留在报告页面上,但如果用户从报告页面导航到另一个页面
Ajax请求-响应
迷路,则此操作可以正常工作。
所以我有以下几个问题

  • 在重新加载页面时,正在进行的Ajax请求会发生什么
  • 页面重新加载是否取消服务器上已启动且正在进行的请求
  • 如果浏览器已经重新加载页面,服务器响应会发生什么情况
  • 在重新加载之后,是否有任何方法可以保持该请求的有效性,这需要进一步的改进
  • 当用户离开时,服务器将继续编译报告

  • 没有

  • 它无处降落。浏览器有一个“新”页面,没有挂起的请求;它不知道任何先前的活动(HTML是无状态的)

  • 不可以。也许您可以装配一个onBeforeUnload事件处理程序来警告用户并允许他们留在页面上。但有些浏览器忽略了该事件上的任何事件处理程序,因此很难使其可靠


  • 你最好的选择可能是改变界面。在页面上放置一个通知,导航离开将取消他们等待的任何报告。并为用户提供一种简单的方法,让他们知道他们的报告正在准备中,比如html加载gif。

    如果我在页面上有许多ajax请求,并且我重新加载页面,那么页面重新加载是立即开始还是等待完成这些请求?它不会等待。触发的每个事件都是它自己的动物,重新加载或导航事件实际上会抛出之前发生的任何其他事件。