如何在Angular中计算下载/上传网速
我想在Angular中计算下载和上传互联网速度.
对API的请求不是最佳解决方案,因为如果服务器本身从加载速度变慢,结果将是不正确的. 也许Angular有解决方案,它使用特殊网站(例如speedtest.net). 有任何想法吗?
什么是互联网速度?
每个人都希望下载越来越快,并且还能更快地上传文件.但是这是什么意思?当您下载或上传某些内容时,您和服务器正在以特定方式进行通信.您有两个互联网连接,但在大多数情况下,您的速度比服务器连接慢.要理解这一点,只需遵循以下逻辑: 您正在与其他数千名用户一起玩一些视频游戏.您(和其他玩家连接)每秒可以发送和接收20个单位.服务器每秒最多可发送200万个单元.通过这种方式,每个人都很开心并且在线.如果服务器每秒只能发送20个单位,那么每个人都会落后,甚至最差(比如包丢失). 因此,要回答互联网速度是什么,从发送给您的请求到前往服务器的时间是否有响应,然后将其转回给您.当然,如果服务器已关闭或已完成其单位空间专用于您,您的请求将被延迟,但这是互联网的工作方式. 当您下载或流式传输电影时,它会发生同样的事情:每次下载/流式传输一小部分时,您都在请求新的块. 我们来谈谈一些数字 时间在互联网上被误导,以毫秒为单位.如果您只是打开一个终端并进行简单的ping www.stackoverflow.com,那么您将拥有类似的内容: Reply from 151.101.1.69: bytes=32 time=36ms TTL=56 Reply from 151.101.1.69: bytes=32 time=36ms TTL=56 Reply from 151.101.1.69: bytes=32 time=36ms TTL=56 Reply from 151.101.1.69: bytes=32 time=36ms TTL=56 那个时间= 36ms是你发送ping请求和请求支持之间的时间. 到底 我希望在网上清除所有内容,测量时间,就像这样: - Start couting - Send a request - ... - Wait.. - ... - Request turned back - Stop Counting **但我的问题是:我可以角度来做吗? ** 答案是..有点.可能有更好的方法可以做到这一点,但几个月前我也想这样做,我想出了这个想法. 假设我们有一个服务来执行请求: export class MyService{ constructor( private http: Http ) public sendRequest(){ return this.http.get(...something); } } 我们的主要组件将有服务注入,并将计算时间过去: export class MyComponent{ public timePassed: any; constructor( private service: MyService ) ngOnInit(): void{ const startingTime = new Date().getTime(); this.service.sendRequest() .subscribe( res => { this.timePassed = ((new Date() - startingTime).getTime())/1000; }); } } 现在,在您的timePassed变量中,您将获得请求所花费的时间. 你总是要像互联网速度一样思考两个人互相交谈.总是.如果你不能将你的速度与别人的速度联系起来,那么与速度谈话毫无意义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |