【问题标题】:Is there a way for a web application to report on the quality of the user's internet connection?Web 应用程序有没有办法报告用户互联网连接的质量?
【发布时间】:2021-03-21 13:06:47
【问题描述】:

我有一个用于运行培训课程的 AngularJS Web 应用程序。在培训课程期间,它使用 SignalR 将大量实时内容推送到客户端 Web 浏览器。

有时用户会抱怨它不起作用,并且他们不再看到新内容弹出。

这会导致调查出了什么问题。有时我们怀疑这是由于用户所在位置的 wifi 较差,因为应用程序确实需要良好的连接,但这很难证明。

有没有办法在用户屏幕上显示连接质量的指示器(带宽和 ping?)

理想情况下,这可以每隔一段时间发送到后端,这样服务器上也会有记录。

谢谢!

【问题讨论】:

  • 为什么不直接向服务器发送固定大小的请求并让客户端测量响应时间?这就是互联网速度测试或多或少的工作方式。您可以检查许多开源实现。但是请注意,生产环境不是测试的地方。有很多技术可以模拟慢速互联网连接。这是你应该在你的开发/测试环境中检查的东西,而不是在生产环境中。

标签: javascript angularjs performance web signalr


【解决方案1】:

您可以在 中的内联脚本块中启动超时,它会在遇到时立即运行。然后,当加载事件触发时,您将取消超时。如果超时触发,则页面加载缓慢。例如:

<script type="text/javascript">
    var slowLoad = window.setTimeout( function() {
        alert( "the page is taking its sweet time loading" );
    }, 10 );

    window.addEventListener( 'load', function() {
        window.clearTimeout( slowLoad );
    }, false );
</script>

显然,您希望将警报替换为更有用的东西,例如在您的情况下,用于慢速互联网连接的弹出窗口或您想要显示的任何内容。

【讨论】:

    猜你喜欢
    • 2016-11-03
    • 1970-01-01
    • 2012-09-18
    • 2016-06-09
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多