当我们尝试用JavaScipt测网速
npm包地址 https://www.npmjs.com/package/network-speed-test Github地址 https://github.com/penghuwan/network-speed-test 事情是这样的,最近尝试写一个通过判断当前网速,从而在前端控制范围请求去分步请求一个大型文件的库。这个东东我现在一行代码都还没写,除了突然发现这个需求的思路有些不太实际之外,另一个原因是我突然问自己—— 前端尼玛要怎么判断网速啊?? ? ! 前端判断网速的原理总结 (注:下面求的网速单位默认为 KB/S ) 通过查阅相关资料,我发现思路主要是分为以下几种: 1.通过img加载或者发起Ajax请求计算网速 通过请求一个和服务端同域的文件,例如图片等,在前端开始请求和收到响应两个时间点分别通过Date.now标记start和end,因为Date.now得出的是1970年1月1日(UTC)到当前时间经过的毫秒数,所以我们通过end - start求出时间差(ms),然后通过计算: 文件大小(KB) * 1000 /( end -start ) 就可以计算出网速了(KB/S)。 而请求文件又有两种方法:通过img加载或者AJAX加载: 通过创建img对象,设置onload监听回调,然后指定src, 一旦指定src,图片资源就会加载,完成时onload回调就会调用