Ajax在NodeJS中请求多次重试以获得耗时的请求

时间:2016-05-04 10:32:24

标签: javascript ajax node.js express

我正在使用ExpressJS框架并使用jQuery向服务器发送ajax请求。这个ajax请求,一个接一个地向服务器上的API发送大量项目的请求,并且需要足够长的时间(100个项目大约需要10分钟)。

问题在于,当服务器正在与API通信并且已处理(例如30个项目)时,浏览器再次发送相同的ajax请求(等待来自服务器的响应)。这导致在服务器上处理多个ajax请求。解决方案是什么?

1 个答案:

答案 0 :(得分:0)

我通过在server.timeout文件中设置/bin/www来解决我的问题。正如我所提到的,我正在使用NodeJS的Express框架,如果我将server.timeout设置为一个值,比如30分钟,那么浏览器会等待30分钟的ajax响应并且不会发送新的请求。这是我在www文件中添加超时值的地方:

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
  console.log('Express server listening on port ' + server.address().port + ' in '+process.env.NODE_ENV+' mode.');
});
server.timeout = 30*60*1000; // for 30 minutes