文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
恩,想了想,还是把这两个函数加上注解好了,免得我又忘了……
事情的起因是这个样子滴,那天Felix问我首页的那个自动选择最快镜像的代码,我就给他了,然后他说找不到速度判断代码,再然后我就看,最然后我发现自己看不懂……
恩,比较丢人,打坐5分钟先……嘿嘿,打坐中途我豁然开朗……于是粪笔疾书……
(“画”外音:哪这么多废话,吃错药了是不是……)
咳咳,肃静,肃静。看代码……恩,其实就是两个主要函数,一个判断,一个获取……
function auto(url){
if(i)
{
i=0;
top.location=url
}
}
这个比较简单,就是获取那个最快的镜像地址。
function run()
{
for(var i=1;i<autourl.length;i++) {
document.write(“<img src=http://”+autourl[i]+” width=1 height=1 onerror=auto(‘http://”+autourl[i]+”‘)>”)
}
这个就比较重要了,也就是解释Felix提出的为什么没有速度判断函数的关键……
这个代码其实就是:<img scr=”镜像url(把它当成图像文件了,但实际上图像不存在)” width =1 height=1 onError=”auto(‘一个url’)”>
当<img>开始工作的时候,浏览器会向该镜像url指向的服务器发出下载这个不存在的图像文件的命令,但是图片实际上是不存在的,所以服务器会反馈给浏览器“文件不存在 ”的信息,于是在浏览器中触发<img>的onerror事件。然后谁最快,谁就是啦。嘿嘿……
转载请注明:Slyar Home » 吼吼,给两个函数加注解