Javascript 图像加载速度

Javascript 图像加载速度,javascript,html,Javascript,Html,如何在html和JavaScript中显示图像加载速度?我有图像大小和我的上网速度,然后时间。但我不知道我如何才能得到计数值的参数putimage和我如何才能实现这个代码 <html> <script type="text/javascript"> function putImage( iterations, update ) { var index = 0,count = 0, timer = window.setInterval

如何在html和JavaScript中显示图像加载速度?我有图像大小和我的上网速度,然后时间。但我不知道我如何才能得到计数值的参数putimage和我如何才能实现这个代码

<html>
<script type="text/javascript">
function putImage( iterations, update ) 
{
       var index = 0,count = 0,
            timer = window.setInterval( check, 1000 ); //check every 1 seconds




//calculating size of the image....
            function getRandomString( sizeInMb ) 
                    {
                        var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+`-=[]\{}|;':,./<>?", //random data prevents gzip effect
                            iterations = sizeInMb * 1024 * 1024, //get byte count
                            result = '';
                        for( var index = 0; index < iterations; index++ ) 
                        {
                            result += chars.charAt( Math.floor( Math.random() * chars.length ) );
                        };     
                        return result;
                    };

                                //showing file size....
                                if(window.ActiveXObject)
                                    {
                                        var fso = new ActiveXObject("Scripting.FileSystemObject");
                                        var filepath = document.getElementById('select_image').value;
                                        var thefile = fso.getFile(filepath);
                                        var sizeinbytes = thefile.size;
                                    }
                                else
                                    {
                                        var sizeinbytes = document.getElementById('select_image').files[0].size;
                                    }

                                // var fSExt = new Array('Bytes', 'KB', 'MB', 'GB');
                                var fSExt = 'KB';
                                fSize = sizeinbytes; i=0;
                                while(fSize>900)
                                {
                                    fSize/=1024;i++;
                                }
                                //alert((Math.round((fSize*100)/100)*1024)+' '+fSExt);  //showing total image size...



//calculating internet speed....
        var speed = 0;
        check();
        //alert("sss"+speed)
        function check() 
        {
            var xhr = new XMLHttpRequest(),
                url = '?cache=' + Math.floor( Math.random() * 10000 ), //random number prevents url caching
                data = getRandomString( 1 ), //1 meg POST size handled by all servers
                startTime;
                speed;
                count;

            xhr.onreadystatechange = function ( event ) 
            {
                if( xhr.readyState == 4 ) 
                {
                    speed = Math.round( 1024 / ( ( new Date() - startTime ) / 1000 ) );
                     // alert(speed);
                    update( speed );
                    index++;
                    //return speed;
                    if( index == iterations ) 
                    {
                        window.clearInterval( timer );
                    };
                };
                            };
            //alert(speed);
            xhr.open( 'POST', url, true );
            startTime = new Date();
            xhr.send( data );
            //alert(speed);
            a=((Math.round((fSize*100)/100)*1024));  //showing total image size...
            //alert(a);
            count=a/speed;
            //alert(count);
            return count;
            //alert((Math.round((fSize*100)/100)*1024)+' '+fSExt);
        }     
                /*showing image*/
                    var src = document.getElementById("select_image");
                    var target = document.getElementById("target");
                    showImage(src, target);
                    function showImage(src, target) 
                    {
                        var fr = new FileReader();

                        fr.onload = function (e) 
                        { 
                            target.src = this.result; 
                        };

                            fr.readAsDataURL(src.files[0]);
                    }


}
//alert(count);
putImage(count, function ( speed ) 
    {
         //document.getElementById( 'speed' ).textContent = 'speed: ' + speed + 'kbs';
        document.getElementById( 'speed' ).textContent = 'speed: ' + speed;
    } );
</script>
<body>
<div id="speed">speed: 0kbs</div>
<img id="target" />
<input type="file" id="select_image" name="image" onchange="putImage()"> </input>

</body>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
</html>

函数putImage(迭代、更新)
{
var指数=0,计数=0,
timer=window.setInterval(检查,1000);//每1秒检查一次
//正在计算图像的大小。。。。
函数getRandomString(sizeInMb)
{
var chars=“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz012456789~!@$%^&*():,,./?,//随机数据防止gzip效应
迭代次数=sizeInMb*1024*1024,//获取字节计数
结果='';
对于(var索引=0;索引<迭代次数;索引++)
{
结果+=chars.charAt(Math.floor(Math.random()*chars.length));
};     
返回结果;
};
//显示文件大小。。。。
if(window.ActiveXObject)
{
var fso=新的ActiveXObject(“Scripting.FileSystemObject”);
var filepath=document.getElementById('select_image')。值;
var thefile=fso.getFile(文件路径);
var sizeinbytes=文件大小;
}
其他的
{
var sizeinbytes=document.getElementById('select_image')。文件[0]。大小;
}
//var fSExt=新数组('Bytes','KB','MB','GB');
var fSExt='KB';
fSize=sizeinbytes;i=0;
而(fSize>900)
{
fSize/=1024;i++;
}
//警报((Math.round((fSize*100)/100)*1024)+''+fSExt);//显示总图像大小。。。
//计算互联网速度。。。。
var速度=0;
检查();
//警报(“sss”+速度)
函数检查()
{
var xhr=new XMLHttpRequest(),
url='?缓存='+Math.floor(Math.random()*10000),//随机数阻止url缓存
data=getRandomString(1),//所有服务器处理的1兆POST大小
开始时间;
速度
计数
xhr.onreadystatechange=函数(事件)
{
if(xhr.readyState==4)
{
速度=数学圆(1024/((新日期()-startTime)/1000));
//警报(速度);
更新(速度);
索引++;
//返回速度;
如果(索引==迭代次数)
{
窗口清除间隔(计时器);
};
};
};
//警报(速度);
xhr.open('POST',url,true);
开始时间=新日期();
发送(数据);
//警报(速度);
a=((Math.round((fSize*100)/100)*1024));//显示总图像大小。。。
//警报(a);
计数=a/速度;
//警报(计数);
返回计数;
//警报((数学轮((fSize*100)/100)*1024)+''+fSExt);
}     
/*显示图像*/
var src=document.getElementById(“选择图像”);
var target=document.getElementById(“目标”);
showImage(src,target);
函数showImage(src,目标)
{
var fr=new FileReader();
fr.onload=功能(e)
{ 
target.src=this.result;
};
fr.readAsDataURL(src.files[0]);
}
}
//警报(计数);
putImage(计数、功能(速度)
{
//document.getElementById('speed').textContent='speed:'+speed+'kbs';
document.getElementById('speed').textContent='speed:'+speed;
} );
速度:0公里

您可以用它来显示进度条的百分比。对于文件大小,您必须进行简单的计算,例如,如果文件大小为5MB,上载百分比为50%,则只需将文件大小除以2,并显示上载大小:2.5MB/5MB

$(文档).ready(函数(){
var maxWidth=400;
var持续时间=3000;
var$log=$('#log');
var$start=$(“#start”);
var$stop=$(“#stop”);
无功定时器;
$start.on('click',function(){
var$bar=$(“#bar”);
水平线(最大宽度);
定时器=设置间隔('Horloge('+maxWidth+'),100);
$bar.animate({
宽度:最大宽度
},持续时间,函数(){
$(this.css('background-color','green');
$start.attr('disabled',true);
$stop.attr('disabled',true);
$log.html('100%);
清除间隔(计时器);
});
});
$stop.on('click',function(){
var$bar=$(“#bar”);
$bar.stop();
清除间隔(计时器);
var w=$bar.width();
变量百分比=parseInt((w*100)/maxWidth);
$log.html(百分比+'%');
});
});
函数水平(最大宽度){
var w=$('#bar').width();
变量百分比=parseInt((w*100)/maxWidth);
$('#log').html(百分比+'%');
}
正文{
利润率:10px;
}
#酒吧{
宽度:0px;
嗨