我的浏览器向服务器发出ajax / json请求,然后服务器调用多个服务来获取数据(花费不同的时间),然后在浏览器中显示这些数据。
我可以,等待服务器完成并返回所有数据。
理想情况下,每当每个单独的调用完成时,我都希望它返回数据(json)。这样我可以在UI中显示它们,如果其中一个服务调用需要很长时间,那么用户仍然可以查看数据,而无需查看空白屏幕。
我认为可以让ASP.NET网页或处理程序将数据发送回请求客户端而不会缓冲它。
但客户端,如何在完成之前处理ajax响应?这甚至可能吗?
我想知道多部分MIME数据类型是否也有用......?
答案 0 :(得分: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实现。