2015-04-22 40 views
3

我是一位.NET开发人员,并且是Node.js中的新手,所以我将非常感谢您的理解和帮助。Node.js.获取HTTP查询的时间

我有一些代码,在登录一个HTTP查询时间:

var sTime; 

var httpReq = http.request(requestOptions, function (httpRes) 
{ 
    httpRes.on('end', function() 
    { 
     var diffTime = (sTime) ? new String(new Date() - sTime) : ''; 
     log('diffTime: ' + diffTime); 
    }); 
}); 

httpReq.on('socket', function (reqSocket) 
{ 
    sTime = new Date(); 
}); 

我在日志文件中收到diffTime: 0有时,这是不可能的。我可以尝试使用另一种方式记录查询的时间,如this,但我想找到零时间的原因。

+0

你有另一个请求开始在覆写'startTime'同一时刻? – Scimonster

+0

上面的代码被放入方法中,通过'setTimeout'方法以200ms的间隔多次调用(让100)。我似乎明白没有线程和所有变量是共享的。我对吗? –

回答

0

没有剩下的实际代码,有点难以测试你的问题。这里有一个类似的方法来显示时间差。

var request = require("request"); 

setInterval(function(){ 
    doRequest(); 
}, 200); 

function doRequest() { 

    var startTime, diffTime; 

    //Start the timer. 
    startTime = new Date(); 

    request("http://www.google.com", function(err,res,body){ 
     diffTime = (new Date() - startTime); 
     console.log(diffTime); 
    }); 

}; 

编辑 - 看到这里解释 http://nodeio.ninja/http/measuring-http-request-times-in-nodejs/

相关问题