是否还有另一个必须发出的http请求?
浏览器如何通知服务器已放弃/取消的请求?
我是否需要对客户端进行编码以使其正常工作?
这是我的ASP MVC控制器方法:
[HttpGet("/get")]
public async Task<string> Get(CancellationToken cancellationToken)
{
//propagate CancellationToken to Entity Framework
}
答案 0 :(得分:1)
HttpResponse.IsClientConnected
属性和其他地方公开的。请参阅此质量检查:Can a http server detect that a client has cancelled their request? XMLHttpRequest
函数取消fetch
(AJAX)和现代abort()
请求(jQuery也会在自己的$.ajax
返回对象中公开此内容。)CancellationToken
:https://andrewlock.net/using-cancellationtokens-in-asp-net-core-mvc-controllers/ ToListAsync
进行查询,SaveChangesAsync
进行商店操作。确保您使用正确的扩展方法:QueryableExtensions.ToListAsync
does not接受CancellationToken
但DbRawSqlQuery.ToListAsync
does。很明显async
与EF的Lazy-Loading功能不兼容,因此您需要在异步代码中抢先加载所有需要的实体,这样就不会调用延迟加载。我建议大多数情况下禁用Lazy-Loading。