如果中间发生页面更改,AJAX 请求/响应的数据会发生啥情况

Posted

技术标签:

【中文标题】如果中间发生页面更改,AJAX 请求/响应的数据会发生啥情况【英文标题】:what happens to the data with a AJAX request/response if a page change happens in the middle如果中间发生页面更改,AJAX 请求/响应的数据会发生什么情况 【发布时间】:2012-11-02 22:35:42 【问题描述】:

这是预期的简单场景。

在我的页面“page.aspx”上,jquery Ajax 在 vb.net 中发布了一条到 getData.aspx 的指令 getData.aspx 中的 Page_Load 方法读取指令并进入数据库,然后将大量数据作为 JSON 返回到字符串变量“myJson”

然后是 Context.Response.Write(myJason)

然后 ajax 读取在 getData.aspx 中生成的字符串

我的问题是,数据会发生什么变化?

    在数据库提取的中间——数据去哪了,vb函数完成了吗? 当 ajax 正在读取 Context.Response.Write(myJason) 时?

数据不能凭空消失吗?

如果没有异常并且 Context.Response.Write("result") 在 vb.net 中完成,但 ajax 没有完成读取响应,因为该人刷新了页面,所以它没有被使用,它会发生什么?

总之,如果请求它的页面重定向,响应会发生什么。响应不能凭空消失?

谢谢

【问题讨论】:

如果我理解正确(我对此表示怀疑)......由于请求的连接丢失,数据无法发送到任何地方。所以它会“消失得无影无踪” “数据会发生什么……”。不清楚你指的是什么数据。 【参考方案1】:

数据会发生什么

在数据库取数据的过程中——数据去哪了,vb函数完成了吗?

取决于 vb 函数中的内容。 SQL 查询肯定会完成。一旦服务器尝试向客户端发送数据(这并不总是在下一个 Response.Write 期间,如果 Response 被缓冲),该过程将失败(将引发异常) 您的所有数据都可用于垃圾收集

当 ajax 正在读取 Context.Response.Write(myJason) 时?

只有部分 JSON 内容将在客户端上可用

数据不能凭空消失吗?

服务器端,它将被垃圾收集。所以是的,它会化为乌有。

【讨论】:

谢谢你的回复——它肯定不能凭空消失——回复会去哪里——它必须在某个地方?谢谢 对于仍在服务器上的数据,将其关闭并收集垃圾。客户端已经收到的数据将取决于客户端的行为。 “在线”数据(服务器发送但客户端尚未收到的一小部分数据)将在到达时被客户端关闭。

以上是关于如果中间发生页面更改,AJAX 请求/响应的数据会发生啥情况的主要内容,如果未能解决你的问题,请参考以下文章

中止请求时 IIS/C# 中会发生啥

Ajax全接触笔记

Django ajax 错误响应最佳实践

使用AJAX实现页面跳转

我可以使用 SignalR 在所有客户端上触发 AJAX 请求吗?

jsonp和ajax的区别