所以我正在考虑用户粘贴链接并且服务器端代码抓取提供的链接并使用该链接的内容(例如页面标题、描述、缩略图等)进行响应的功能。
用户同时可以更改链接,并且在这样做时,应该在客户端中止 ajax 请求。
我想知道 IIS 服务器中到底发生了什么,特别是我的 C# 代码。
- 响应线程是否终止?
- Response 对象现在返回 null,还是 Response.Write 抛出异常?
- 响应线程中是否会抛出异常?(那个甚至没有意义,但无论如何)
所以我正在考虑用户粘贴链接并且服务器端代码抓取提供的链接并使用该链接的内容(例如页面标题、描述、缩略图等)进行响应的功能。
用户同时可以更改链接,并且在这样做时,应该在客户端中止 ajax 请求。
我想知道 IIS 服务器中到底发生了什么,特别是我的 C# 代码。
如果服务器代码检查 的状态Response.IsClientConnected
,它可以在客户端中止请求时停止工作并产生空响应,否则它将照常完成请求。
请求处理不会因为没有人再等待而自动中止。服务器代码必须主动检查请求的状态。
您的 Web 服务器不知道客户端取消了请求。请求仍将得到满足,并将发回响应。您编写的客户端脚本需要能够处理页面的当前状态。
如果您确定您不关心响应,我建议您在客户端中止请求:
xhr.abort()
如果在写入响应之前关闭连接客户端,则会引发错误说明。当响应从服务器返回时,您可以选择不处理它。
一旦请求发布到服务器,IIS 将开始执行服务器端代码。现在服务器可以决定是否需要执行代码。
在整个页面周期中,您可以检查 Guffa 提到的 Request.IsClientConnected 并终止执行。
但是,是的,这完全取决于您所拥有的场景。
希望能帮助到你。