我有一个请求返回一个JSON对象数组(由AngularJS Web应用程序中的AJAX调用请求),它代表服务器上的某些文件(node.js)。 大多数情况下,结果存储在数据库中,因此响应非常快。
但是,如果数据库尚未填写,或文件已更改,则需要解析文件(这包括服务器向第三方Web服务发出请求)和(存储在数据库中)然后发送给客户。
这可能需要10秒或更长时间,具体取决于文件的数量。
目前,Web浏览器只是等待响应,我有一个单独的WebSocket,用于将解析进度传达到网页上的进度条。但是,如果服务器上有许多文件,Web浏览器将会超时似乎是可行的。
所以似乎如果需要解析,我应该立即返回一个响应,并在告知解析完成后(通过WebSocket)让客户端请求。对此有什么合适的回应? 202接受了吗?或者可能需要426升级(到WebSocket)?
或者有没有办法通过HTTP发送进度而根本不使用WebSockets? (像使用Percent完整标头流式传输HTTP标头,然后在正文中发送json,或者如果需要很长时间才能获得响应的主体,Web浏览器会超时)
答案 0 :(得分:0)
只是一些想法,可能有更多方法: