0

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

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

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

我认为它可以让 ASP.NET 网页或处理程序将数据发送回请求客户端而不缓冲它。

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

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

4

1 回答 1

0

制作一个单独的控制器/函数(取决于您使用的后端),然后在您的 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 实现。

于 2013-04-29T17:36:10.187 回答