基于小程序报错<request:fail 请求超时> <request:fail net::ERR_CONNECTION_TIMED_OUT>问题记录

起因:昨天半夜上了新功能之后, 可能大家都比较活跃, 在测试交互上就发现了今天写下的这个问题。<昨天上的功能是OK的>


复异过程:

测试后半截就随便点点嘛,一般都会看看之前的功能正不正常。然后L哥就发现了一个奇怪的问题,

基本上所有的页面,在反复进出一定次数之后,页面就没数据了。

实质上就是接口就不加载了。

我的第一反应就是微信那边是不是有什么异常

然后开调试看log

如下图:

社区搜了一圈,发现好多问同类报错的,但是看了十几页也没看到什么有价值的内容

就先睡了

第二天到公司打开开发者工具 真机模拟了一下异常的复现场景

发现了一个很特别的现象

基本上每次进出页面,在控制台的请求里都会挂起一个pending,然后pending接口超过10个之后,后续的调用就没有了,会等到前面的pending状态改变之后才继续执行。 

我去看了一下这个接口(这是我们自己埋点系统的接口),妈的智障!

后端不知道几时把这玩意做了内网访问限制。

接口去掉之后异常就没有了 <这是业务上的问题>

其实质是: 每个浏览器内核,对于同一域名下的网络请求都有并发限制。很显然小程序(或者说微信<其实质是QQ浏览器的X5内核>)的并发数量是10

当实际的请求并发到达这个数字之后,后续的请求就会等待执行,即像一个单向队列一样,前面10个排队的有人出去,后面的请求才能进去,出几个进几个。

更详细的浏览器同域名请求的最大并发数限制 - sunsky303 - 博客园 可以看一下这篇文章,说的相当清楚。

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

97pra

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值