一、网速的测速原理为计算上传某一大小文件和下载某一大小文件时:
速度=大小/时间
二、误差影响多种:
网络环境(包括dns、执行脚本所需时间(包括服务器,客户端)、精细情况下,还包括文件头得相关信息。。。)、本地环境(不解释)
特别需要注意 gzip
三、设计:
1.把文件上传分两步来执行。第一步空上传。得到所需时间.
2.生成指定大小长度的文件,如:1024000长的字符串.
3.进行二次提交。后者时间减去第一次空上传的时间。得到1024000所需的实际时间。估算出上传的速度。
4.因为各种因素干扰。重复提交3~5次。取平均值。即当前客户端相对服务器的网速。
5.gzip解决方式(压缩算法大都是对相同内容进行压缩)
压缩过的文件。本身不容易再压缩,如jpg之类文件,测试下载,可以通过直接输出个定长的jpg文件。测试即可.
四、考虑网络不稳定:
1.剔除负值(头次请求高,二次请求慢,就会出现)
2.设置一个误差值。如 :30% 将多次的结果平均化,超过这误差值的结果剔除。再计算平均。
五、优化
1.使用swfupload 直接解析出上传时间。相对较准。