首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过javascript获取“Content-Length”?

如何通过javascript获取“Content-Length”?
EN

Stack Overflow用户
提问于 2010-12-11 08:57:33
回答 2查看 7.4K关注 0票数 2

我有以下代码片段:

代码语言: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调试它,函数总是会正确返回……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-11 08:59:56

这是因为函数在返回响应和设置size之前返回。也就是说它是异步执行的。您希望传递一个回调函数,并将其与size一起作为参数应用。

票数 3
EN

Stack Overflow用户

发布于 2010-12-11 09:00:48

你有一个代码顺序的问题,代码不是同步的,它是异步的。

回调发生在将来,而返回是直接发生的。

在Firebug中调试它会导致返回是正确的,这是因为在到达返回之前,代码会减慢足够长的时间来执行回调。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4414570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档