今天在玩 PHP 探针,看到一个测网速的功能。代码是这样的:
<script language="javascript" type="text/javascript">
var acd1;
acd1 = new Date();
acd1ok=acd1.getTime();
</script>
<?php
for($i=1;$i<=100000;$i++)
{
echo "<!--567890#########0#########0#########0#########0#########0#########0#########0#########012345-->";
}
?>
<script language="javascript" type="text/javascript">
var acd2;
acd2 = new Date();
acd2ok=acd2.getTime();
window.location = '?speed=' +(acd2ok-acd1ok)+'#w_networkspeed';
</script>
这样居然可以通过 js 的间隔获取客户端接收中间这段长文本的时间,感觉好神奇啊。
但是后来想想不对啊,这都吐出来 10M 大小的文本了,为毛我的浏览器可以瞬间加载完毕?我的阿里云没这么高带宽啊?
后来试了下把文本直接放到静态 HTML 里面,两种情况:
1. 直接裸的纯文本 加载很慢,我没耐心等他加载完,所以也不知道最后文档结构是啥样
2. 加了标签,比如在开头放一个<script></script>或者<body>之类的 瞬间加载完毕
请教下各位大大这是什么科学道理?
PS: 是走 http 服务器访问的,不是本地直接打开网页文件
PS2: 而且我看雅黑探针的这段代码,命名是 10M 大小为毛官方说是 1000KB 大小,还有最后计算网速的那段也没看懂,不管是按 bit 还是 byte 都不对啊