当前位置: 首页 > 知识库问答 >
问题:

javascript - js websocket 循环发送数据递增延迟问题?

乐正洲
2023-06-29

一个字符串 a = '1234567890'

for(let i = 0; i<a.length;i++){
        (function(i){
            setTimeout(function(){
                ws.send(a[i]);
            },i*100)
        })(i,a)
    }

联调发现数据返回有递增延迟的问题,请问怎么发送数据可以解决延迟的问题?

共有2个答案

公良鸿畅
2023-06-29

发送数据延迟问题?看一下 DevTools 中的 network (网络)面板中对应请求的耗时信息。也可以在 network 面板的请求瀑布流中看到请求的时间线信息。

一般都是发起请求过多时的排队问题,或者等待服务器响应的问题。所以检查一下耗时信息先,看是是两个问题中的哪一个造成的。

景帅
2023-06-29
let a = '1234567890';

for(let i = 0; i < a.length; i++){
    (function(i){
        setTimeout(function(){
            ws.send(a[i]);
        }, i * 50);
    })(i);
}
 类似资料:
  • 我在试着理解为什么一些简单的环路会以这样的速度运行 第一种情况: 根据IACA,吞吐量是1个周期,瓶颈是端口1,05。我不明白为什么它是1 cylce。毕竟我们有两个循环承载的依赖关系: 而且这种Latency是循环进行的,所以它应该会减慢我们的迭代。 第二种情况: 我更不明白为什么吞吐量是1.65。

  • 问题内容: 我想在循环内添加延迟/睡眠: 我这样尝试过: 只有第一种情况是正确的:显示后,它将等待3秒钟,然后显示,但随后将不断重复。 我想要的是在显示3秒之后显示出来,然后它需要第二次等待3秒,依此类推。 问题答案: 该函数是非阻塞的,将立即返回。因此,您的循环将非常快速地迭代,并且将快速连续地发起3秒超时触发。这就是为什么您的第一个警报会在3秒钟后弹出,而其余所有警报都将连续不断地出现。 您可

  • 问题内容: 我正在使用Socket.IO主页(http://socket.io/)中的示例。它可以正常工作,但是在发送数据的时间与从另一端接收到数据之间存在巨大的延迟。 我正在使用XAMPP,我的目录中有socket.html,并在浏览器中使用“ http://localhost/socket.html”导航到它,并且我的服务器在端口8080上侦听。 服务器: HTML档案: 问题答案: 我发现了

  • 问题内容: 如何在JavaScript中进行无限循环?我正在尝试制作幻灯片,可以正常工作,但是无法循环播放。我什至不能让它循环两次。 我现在正在使用的代码是 没有for的东西在那里,它确实经历了一次。当我输入for时,它要么使Firefox锁定,要么仅循环一次。我确信这是一件非常简单的事情,即使必须循环1,000,000次或进行其他操作(而不是无限循环),这对我来说也很好。 另外,我不想使用jQu

  • 请问websocket接收数据时存在延迟问题有相关的解决办法吗发送数据到接收数据正常是不超过100毫秒的,但是有时50毫秒左右,有时就到了六七百毫秒甚至一秒,各位大佬有相关的文献或者解决办法吗?

  • 我正面临着G1GC算法中GC停顿的持续增加。服务延迟随着时间的推移继续增长。一旦发生这种情况,我将重新启动服务,延迟时间将恢复正常。启动后,等待时间再次随着时间的推移而增加。