我正在使用ExpressJS框架并使用jQuery向服务器发送ajax请求。这个ajax请求,一个接一个地向服务器上的API发送大量项目的请求,并且需要足够长的时间(100个项目大约需要10分钟)。
问题在于,当服务器正在与API通信并且已处理(例如30个项目)时,浏览器再次发送相同的ajax请求(等待来自服务器的响应)。这导致在服务器上处理多个ajax请求。解决方案是什么?
答案 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