繁体   English   中英

如何通过javascript获取“内容长度”?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM