Mig*_*use 6 javascript timing node.js http-request
我想知道我们是否可以使用node.js来衡量完成http请求所需的时间.从文档(这里)稍微修改一个例子,可以很容易地写下以下代码.
var http = require('http');
var stamp1 = new Date();
var stamp2, stamp3, stamp4;
var options = {
hostname: 'www.google.com',
port: 80,
path: '/upload',
method: 'POST'
};
var req = http.request(options, function(res) {
stamp3 = new Date();
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
res.on('end', function () {
stamp4 = new Date();
console.log ("Stamp 3: " + stamp3);
console.log ("Stamp 4: " + stamp4);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
// write data to request body
req.write('data\n');
req.write('data\n');
req.end();
stamp2 = new Date();
console.log ("Stamp 1: " + stamp1);
console.log ("Stamp 2: " + stamp2);
Run Code Online (Sandbox Code Playgroud)
现在让我谈谈我的观点.在响应上,可以容易地测量响应所花费的时间,因为在开始时设置了stamp3并且设置了结束标记4.因此,原则上对于相对大量的数据,这两个时间戳将是不同的.
但是,我的问题是邮票1和邮票2是否实际衡量了在准备和发送请求时发生的情况.换句话说,req.write(....)是一个同步操作吗?基于node.js原则,我希望req.write(...)是一个异步操作,其中一个可以传递一个任意大的文档,然后在成功完成后我们可以知道请求已经完成的回调.
评论?
归档时间: |
|
查看次数: |
6815 次 |
最近记录: |