2015-09-18 68 views
0

我面臨一個問題,我的獲取請求的處理程序在特定時間間隔後多次調用。nodejs獲取多次請求回調

在下面的例子中,如果我打電話http://localhost:3000/test那麼它工作得很好,但如果我撥打http://localhost:3000,那麼它在一定的時間間隔後會多次呼叫。有人請幫我理解什麼是需要很長時間和'取得'請求的任務的問題。

var express = require('express'); 
var url = require('url'); 
var http = require('http'); 

var app = express(); 
var server = http.createServer(app); 
app.listen(3000); 
console.log('App is listening on port: 3000'); 

app.get('/', function(req, res){ 
    console.log("req url = "+ req.url); 

    setTimeout(function(){ 
     console.log('working in settimeout'); 
     res.writeHead(200, {'content-type': 'text/plain'}); 
     res.end('This is simple response.'); 
    }, 1000*15*60); 

    console.log('set timeout registered.'); 
}); 

app.get('/test', function(req, res){ 
    console.log("req url = "+ req.url); 
    res.writeHead(200, {'content-type': 'text/plain'}); 
    res.end('This is response for /test.'); 
}); 

請幫忙。

謝謝。

+0

Exactely發生了多次? – DevAlien

回答

2

我已經用鉻進行了測試,現在我明白你的意思了。 瀏覽器在等待120秒後關閉連接並再次嘗試。

這就是爲什麼你多次看到它,請求永遠不會結束,因爲它是900秒。

如果您嘗試使用curl或類似的東西,它會等待900秒,您將看到只有一個電話。

+0

好吧,我想我明白了你的意思,但是有什麼辦法可以解決這個問題。 – Bhupi

+0

瀏覽器設置了120秒的限制,等待超過120加載網頁是沒有用的。 – DevAlien

+0

如果你做了很長的過程,你可以setTimeout false在快遞 –