日志文章

2008年01月21日 11:35:38

网络测速一原理及实例

转载时请保留下列信息:
本文来自:
http://struts.blog.ccidnet.com/blog-htm-itemid-239706-uid-6587-do-showone-type-blog.html
作   者:
jstruts


原理:利用img元素的 onload 事件求得img加载的速度既网络速度


asp代码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<center>
<table>
<tr><td>
<span id=showtxt></span></td></tr>
<tr><td>
<span id=imgs></span></td></tr>
<tr><td width="550" height="25">
<%
Response.Expires=-1
Response.ExpiresAbsolute=Now()-1
Response.cachecontrol="no-cache"
Dim Imgrandom
Randomize
Imgrandom = Int(799999 * Rnd + 200000)
%>
</td></tr></table>
<table>
<tr>
<td width="200">
<span id="_PercentBar"></span>
</td>
<td><span id="percenttitle"></span></td>
</tr>
</table>
<form action="guide.asp" name="speedform" method="post">
<table><tr><td><input type="hidden" name="avrspeed"></td></tr></table>
</form>
</center>
<script language="javascript" type="text/javascript" src="percent.js">
</script>
<img src="img.jpg?id=<%=Imgrandom%>" width=0 height=0 onerror = showerr() onload="showspeed();">
<script language="javascript" type="text/javascript">
window.status = "测速中,请稍候..."
var st = new Date()
var i=0
var totalspeed=0
function showspeed()
{  
var number = Math.floor(Math.random()*1000000) +200000;
i++ //循环控制 10次
var fs = 104 //img.jpg文件大小(K)
var l = 2 //小数点的位数
var et = new Date()
alltime = fs*1000/(et - st)
time=alltime
Lnum = Math.pow(10,l)
calcspeed = Math.round(alltime*Lnum)/Lnum*8
if(i < 11){
totalspeed=totalspeed+calcspeed;
PaintPercent("_PercentBar",10*i, "安装进度",true,20);//进度条显示控制
percenttitle.innerHTML=(10*i+"%");
var imgstr="<img src='img.jpg?id="+number+"' width=0 height=0 onerror = showerr()>";
imgs.innerHTML = (imgstr);
st=et;
}
else{
percenttitle.innerHTML=("测速完毕,转向生成报告....");
document.speedform.avrspeed.value=Math.round(totalspeed/10);//四舍五入结果赋给speedform.avrspeed
window.setTimeout(rendresult,2000);//两秒后提交表单,转向结果页面(结果页面还有其它功能,这里先不详述)。
}



}
function rendresult()
{
speedform.submit();
}
function showerr()
{
showtxt.innerHTML = ("数据下载错误,请刷新重试")
window.status = "数据下载错误,请刷新重试"
}
</script>

</BODY>
</HTML>


时间仓促,有许多不完全的地方,只是说明这个道理,欢迎指正!

Tags: javascript   js   网络   网页   测速   原理   实例  

类别: 程序设计 |  评论(3) |  浏览(3009) |  收藏
一共有 3 条评论
3楼 猪八戒威客 2008年06月25日 18:08:25 Says:
你相信你的知识吗?
你相信你的智慧吗?
你相信你的能力吗?
您相信你的创意吗?
如果你对自己有百分百的信心,
那么,就不要犹豫了,
加入猪八戒威客任务网吧http://www.zhubajie.com/task/?welcome=689679
运用你的智慧和技术为自己创造财富吧
(付: “威客”是英文是Witkey(wit智慧、key钥匙)的音译。
所谓“威客”就是在网络时代,凭借自己的创造能力(智慧和创意)在互联网上帮助别人,而获得报酬的人。
“威客”同时也指代一种以任务悬赏竞标为核心内容的网站模式。

猪八戒网创立于2005年12月,此时威客概念并未诞生。
后在2006年9月3日,中央电视台新闻联播报道猪八戒网等同类型网站时,将猪八戒网视为威客模式网站。
  猪八戒网是中国最大的威客聚集地,也是中国最大的在线创意集市。
天南海北的威客们通过猪八戒网自由参加任务竞标,提交自己的创意方案,获得工作报酬和工作机会。企业和个人则通过猪八戒网发布自己的创意需求,吸引威客们参与任务赏金的角逐,进而获得既多又好的创意解决方案。

2008年1月,猪八戒网正式推出“Ework”(在线工作平台),猪八戒网突破了以任务悬赏竞标为核心的传统威客模式,开创了中国互联网在线工作平台的新时代。猪八戒网成为人们发布或者获取工作机会,进而实现在线工作管理、协作和交流,获得工作报酬,提高工作效率的在线工作平台。
http://www.zhubajie.com/task/?welcome=689679
对于技术性人来说,是一个大展身手的好平台
2楼 [匿名]wyujvu 2008年04月14日 20:49:10 Says:
美立特数码快印是一家集打印/复印、写真喷绘、工程图纸、装订制作、排版设计、传统数码印刷等于一体的专业化数码快印公司。数据印刷:http://www.mcopy.com.cn/ 数据快印:http://www.mcopy.com.cn/shumakuaiyin.htm 视频工程:http://www.glory-vision.cn/shipin.htm 音响工程:http://www.glory-vision.cn/yinxiang.htm r7a6p7lz
1楼 人力资源收集库021-51098783 2008年03月14日 10:05:43 Says:
加入IPTS,会对你有帮助的。
发表评论