最近公司要求做一个测试站点运行速度的小程序,哎,放码吧 实在是搞不动了,求教高手。
该程序在IE、FF、chrome下都运行正常,在opera下就悲剧了 是浏览器的兼容性问题呢?还是程序的执行逻辑有问题???
var iframe = new Array();
var loadtime = new Array();
var dstart;
var dend;
var j;
var flag = 0;
var min_index;
var autourl=new Array()
autourl[0]="www.cnspeed.com"
autourl[1]="hk.cnspeed.com" //香港站
autourl[2]="hn.cnspeed.com" //河南站
autourl[3]="hg.cnspeed.com" //韩国站
autourl[4]="cnc.cnspeed.com" // 网通1站
autourl[5]="cnc2.cnspeed.com" //网通2站
var urlname = new Array();
urlname[0] = "主站";
urlname[1] = "香港站";
urlname[2] = "河南站";
urlname[3] = "韩国站";
urlname[4] = "网通1站";
urlname[5] = "网通2站";
function loading() {
for (var i=0;i<autourl.length;i++) {
dstart = new Date();
document.getElementById("txt"+i).innerHTML=urlname[i]+":Loding...";
iframe[i] = document.getElementById("iframe"+i);
iframe[i].src = "http://"+autourl[i]+"/help/ts.html?a="+Math.random();
j = i;
//alert (j);
iframe[j].onload = iframe[j]. onreadystatechange = function(){
iframeload(this)
};
//alert (iframe[j].onreadystatechange);
}
}
function iframeload(iframe) {
var i = iframe.id.replace("iframe", "");
if ( (!iframe.readyState) || (iframe.readyState == "complete")||(iframe.readyState == 4)) {
dend = new Date();
var loadingtime = speed(dstart,dend);
if (flag==0) {
flag = 1;
min_index = i;
document.getElementById("recommend").innerHTML = "推荐您通过<a href='http://"+autourl[min_index]+"' target='_blank'>"+urlname[min_index]+"</a>访问";
}
document.getElementById("txt"+i).innerHTML="<a href='http://"+autourl[i]+"' target='_blank'>"+urlname[i]+"</a>"+":"+loadingtime+"秒";
}
}
function speed(dstart, dend){
var startMinute = dstart.getMinutes();
var startSecond = dstart.getSeconds();
var startMilli = dstart.getMilliseconds(); //开始毫秒
var startLoading = startMinute * 60 * 1000 + startSecond * 1000 + startMilli;//开始时间
var endMinute = dend.getMinutes();
var endSecond = dend.getSeconds();
var endMilli = dend.getMilliseconds(); //结束毫秒
var endLoading = endMinute * 60 * 1000 + endSecond * 1000 + endMilli; //结束时间
var timeLoading = ( endLoading - startLoading ) / 1000; //计算出时间差
return timeLoading;
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>test</title></head>
<body onLoad="loading()">
<div align="center">
<iframe id="iframe0" style="display:none" ></iframe>
<div id="txt0" name="txt0"></div>
<iframe id="iframe1" style="display:none" ></iframe>
<div id="txt1" name="txt1"></div>
<iframe id="iframe2" style="display:none"></iframe>
<div id="txt2" name="txt2"></div>
<iframe id="iframe3" style="display:none"></iframe>
<div id="txt3" name="txt3"></div>
<iframe id="iframe4" style="display:none"></iframe>
<div id="txt4" name="txt4"></div>
<iframe id="iframe5" style="display:none"></iframe>
<div id="txt5" name="txt5"></div>
</div>
<div id="recommend" name="recommend"></div>
</body>
</html>
这是在FF底下运行的情况:IE、chrome同这是在opera下运行的情况:
该程序在IE、FF、chrome下都运行正常,在opera下就悲剧了 是浏览器的兼容性问题呢?还是程序的执行逻辑有问题???
var iframe = new Array();
var loadtime = new Array();
var dstart;
var dend;
var j;
var flag = 0;
var min_index;
var autourl=new Array()
autourl[0]="www.cnspeed.com"
autourl[1]="hk.cnspeed.com" //香港站
autourl[2]="hn.cnspeed.com" //河南站
autourl[3]="hg.cnspeed.com" //韩国站
autourl[4]="cnc.cnspeed.com" // 网通1站
autourl[5]="cnc2.cnspeed.com" //网通2站
var urlname = new Array();
urlname[0] = "主站";
urlname[1] = "香港站";
urlname[2] = "河南站";
urlname[3] = "韩国站";
urlname[4] = "网通1站";
urlname[5] = "网通2站";
function loading() {
for (var i=0;i<autourl.length;i++) {
dstart = new Date();
document.getElementById("txt"+i).innerHTML=urlname[i]+":Loding...";
iframe[i] = document.getElementById("iframe"+i);
iframe[i].src = "http://"+autourl[i]+"/help/ts.html?a="+Math.random();
j = i;
//alert (j);
iframe[j].onload = iframe[j]. onreadystatechange = function(){
iframeload(this)
};
//alert (iframe[j].onreadystatechange);
}
}
function iframeload(iframe) {
var i = iframe.id.replace("iframe", "");
if ( (!iframe.readyState) || (iframe.readyState == "complete")||(iframe.readyState == 4)) {
dend = new Date();
var loadingtime = speed(dstart,dend);
if (flag==0) {
flag = 1;
min_index = i;
document.getElementById("recommend").innerHTML = "推荐您通过<a href='http://"+autourl[min_index]+"' target='_blank'>"+urlname[min_index]+"</a>访问";
}
document.getElementById("txt"+i).innerHTML="<a href='http://"+autourl[i]+"' target='_blank'>"+urlname[i]+"</a>"+":"+loadingtime+"秒";
}
}
function speed(dstart, dend){
var startMinute = dstart.getMinutes();
var startSecond = dstart.getSeconds();
var startMilli = dstart.getMilliseconds(); //开始毫秒
var startLoading = startMinute * 60 * 1000 + startSecond * 1000 + startMilli;//开始时间
var endMinute = dend.getMinutes();
var endSecond = dend.getSeconds();
var endMilli = dend.getMilliseconds(); //结束毫秒
var endLoading = endMinute * 60 * 1000 + endSecond * 1000 + endMilli; //结束时间
var timeLoading = ( endLoading - startLoading ) / 1000; //计算出时间差
return timeLoading;
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>test</title></head>
<body onLoad="loading()">
<div align="center">
<iframe id="iframe0" style="display:none" ></iframe>
<div id="txt0" name="txt0"></div>
<iframe id="iframe1" style="display:none" ></iframe>
<div id="txt1" name="txt1"></div>
<iframe id="iframe2" style="display:none"></iframe>
<div id="txt2" name="txt2"></div>
<iframe id="iframe3" style="display:none"></iframe>
<div id="txt3" name="txt3"></div>
<iframe id="iframe4" style="display:none"></iframe>
<div id="txt4" name="txt4"></div>
<iframe id="iframe5" style="display:none"></iframe>
<div id="txt5" name="txt5"></div>
</div>
<div id="recommend" name="recommend"></div>
</body>
</html>
这是在FF底下运行的情况:IE、chrome同这是在opera下运行的情况:
版本 10.61
公司网址:www.w262.com