[英]In node.js, how do I get the Content-Length header in response to http.get()?
[英]How do I get 'Content-Length' via javascript?
我有以下片段:
var size;
function getImageSize(url)
{
var xhr = new XMLHttpRequest();
xhr.open('HEAD', url, true);
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4)
{
if (xhr.status == 200)
{
size = xhr.getResponseHeader('Content-Length');
alert(size);
}
}
};
xhr.send(null);
return size;
}
该函数的目的是返回(图像的)文件大小。
函数内部的警报将始终返回正确的值,但是函数本身将始终返回undefined
。 为什么?
奇怪的是,如果我使用firebug进行调试,该函数将始终正确返回...
这是因为函数在返回响应和设置size
之前就返回了。 即异步执行。 您想传递一个回调函数,并以size
作为参数来应用它。
好吧,那里有一个代码顺序问题,该代码不是同步的,它是异步的。
回调发生在将来,而返回立即发生。
在Firebug中调试它会导致返回正确,原因是它使代码的运行时间减慢了足够长的时间,以使回调在返回之前就已经执行了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.