在ajax请求完成之前,以块的形式读取响应

read response from ajax request in blocks before its complete

本文关键字:响应 读取 请求 ajax      更新时间:2023-09-26

我的浏览器向服务器发出一个ajax/json请求,然后服务器调用几个服务来获取数据(花费不同长度的时间),然后在浏览器中显示这些数据。

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

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

我认为有可能获得ASP。. NET网页或处理程序将数据发送回请求客户端而不缓存它。

但是客户端,我如何在ajax响应完成之前处理它?这可能吗?

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

创建一个单独的控制器/函数(取决于你使用的后端),然后在javascript中创建单独的请求。由于Javascript是异步的,当每个函数完成时,结果将显示在页面上。

。净伪代码

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实现。