繁体   English   中英

在完成之前从ajax请求中读取响应,以块为单位

[英]read response from ajax request in blocks before its complete

我的浏览器向服务器发出ajax / json请求,然后服务器调用多个服务以获取数据(花费各种时间),然后在浏览器中显示此数据。

我可以等服务器完成并一次性返回所有数据。

理想情况下,我希望它在每个单独的调用完成时返回数据(json)。 这样,我可以在UI中显示它们,如果其中一个服务调用花费很长时间,则用户仍然可以查看数据,而无需查看空白屏幕。

我认为有可能获得一个ASP.NET网页或处理程序以将数据发送回请求的客户端而不进行缓冲。

但是在客户端,我如何在Ajax响应完成之前对其进行处理? 这有可能吗?

我想知道多部分MIME数据类型是否也有用...?

制作一个单独的控制器/功能(取决于您使用的后端),然后在您的JavaScript中发出单独的请求。 由于Javascript是异步的,因此结果会在每个函数完成时显示在页面上。

.NET伪代码

public string Foo() {
    string returnedJson = getFoo();
    return returnedJson;
}
//Same thing for Bar and Bah

然后,在您的Javascript中(假设您使用的是jQuery)

function onFooComplete() {
    //In this function, display the data you get back from the server
}

$.get('/foo', function(res) {
    onFooComplete(res);
});

为了获得更强大的植入效果,请考虑在javascript中使用发布/订阅方法。 https://github.com/cowboy/jquery-tiny-pubsub是一个很小但有用的jQuery pub / sub实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM