请大家帮忙检查一下我写的简单代码有没有漏洞

OOPhaisky 2011-11-22 09:43:30
我写了一个利用img下载时间计算网速的代码,请各位帮忙检查一下是否有漏洞、考虑不周或者不合理的地方,望不吝赐教,谢谢!


<html>
<head>
<title>
网速测试
</title>
<script type="text/JavaScript" src="getSpeed.js">
</script>
</head>
<body>
<span id="Span1">测速进行中......</span>
<script type="text/JavaScript">
getbandwidth("img1.bmp");//调用计算网速的函数,传递想要加载的图片路径
</script>
</body>
</html>


其中,“getSpeed.js”的内容如下:

var starttime, endtime;//图片开始加载时间和图片加载完毕时间
var ut = ""; //网速单位(G、M、K等等)
var filesize; //文件大小,单位是Byte

function getbandwidth(imgpath)
{
var img = new Image;
img.onload = load;
starttime = new Date();//图片开始加载时间
img.src = imgpath;
}
function convertSpeed(speed) //转换网速的单位格式
{
if (speed >= 1073741824) //速度超过1G(b/s)
{
a = speed/1073741824;
a = Math.round(a*100)/100;
ut = "G(b/s)";
return a;
}
else if (speed >= 1048576) //速度超过1M(b/s)
{
a = speed/1048576;
a = Math.round(a*100)/100;
ut = "M(b/s)";
return a;
}
else if (speed >= 1024) //速度超过1K(b/s)
{
a = speed/1024;
a = Math.round(a*100)/100;
ut = "K(b/s)";
return a;
}
else
{
a = Math.round(speed*100)/100;
//a = a.toFixed(2); //higher version(IE5.5+)
ut = "b/s";
return a;
}
}
function load()
{
endtime = new Date(); //图片加载完毕时间
filesize = this.fileSize; //获取图片大小(单位是byte)
if((endtime - starttime) == 0){
return;
}
var speed = convertSpeed(filesize*1000*8/(endtime-starttime)); //计算速度,"乘8"是将"byte/s"转换为"bit/s"
Span1.innerHTML = speed + " " + ut; //显示网速
}
...全文
350 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
hibin101 2011-11-24
  • 打赏
  • 举报
回复
要确保当前HTTP请求只有你这下载图片这一个,这样才可以吧
OOPhaisky 2011-11-24
  • 打赏
  • 举报
回复
自己顶起来
huicaier 2011-11-24
  • 打赏
  • 举报
回复
尝试还是挺好的
望舒 2011-11-23
  • 打赏
  • 举报
回复

<script>
alert('coollf');
</script>

望舒 2011-11-23
  • 打赏
  • 举报
回复

alert('hello');
OOPhaisky 2011-11-23
  • 打赏
  • 举报
回复
to fanchuanzhidu:

请问,有没有更精确一些的方法(在客户端获得网速的),最好提供一下源代码,谢谢!
OOPhaisky 2011-11-23
  • 打赏
  • 举报
回复
请高手继续帮忙啊,谢谢啦
OOPhaisky 2011-11-22
  • 打赏
  • 举报
回复
请大家帮忙检查一下阿,看看有没有什么不妥的地方,毕竟我一个人想的可能不是很周全,谢谢了!
yhtapmys 2011-11-22
  • 打赏
  • 举报
回复
支持下...

即时显示网速。。。
三石-gary 2011-11-22
  • 打赏
  • 举报
回复
支持下。。。
默默不得鱼 2011-11-22
  • 打赏
  • 举报
回复
比较想知道1kb的图是什么效果
豆虫 2011-11-22
  • 打赏
  • 举报
回复
代码上除了
Span1.innerHTML = speed + " " + ut; //显示网速
这一句不符合W3C标准外 其他的没什么

但是这种js测试网速只是粗略的能够得到数据(像下载一幅图片前后所用的时间) 一般在服务端做这种测试
yuliya1027 2011-11-22
  • 打赏
  • 举报
回复
好有新意啊,学习了
ootwo 2011-11-22
  • 打赏
  • 举报
回复
这个很好。
dencey 2011-11-22
  • 打赏
  • 举报
回复

function load()
{
endtime = new Date(); //图片加载完毕时间
filesize = this.fileSize; //获取图片大小(单位是byte)
if((endtime - starttime) == 0){
return;
}
var speed = convertSpeed(filesize*1000*8/(endtime-starttime)); //计算速度,"乘8"是将"byte/s"转换为"bit/s"
Span1.innerHTML = speed + " " + ut; //显示网速
}

不能直接用Span1.innerHTML吧,document.getElementByID("Span1").innerHTML
另外endtime-starttime的结果是毫秒,转换成秒要/1000
OOPhaisky 2011-11-22
  • 打赏
  • 举报
回复
请各位高手帮忙看看阿,谢谢大家了!

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧