工作中,遇到了个奇怪的 bug,求解决方法。

2018-08-17 15:54:57 +08:00
 sm0king

最近遇到一个 bug,页面一直 loading 让前端定位。

定位过程是:首先检查前端代码(出问题先检查自身原因),排除了代码方面的问题,然后开始检查返回错误,我怀疑是一直在 pending,于是模拟了各种错误情况,都没复现 bug。然后开始检查后端日志,看有没有返回数据,最后排查了 nginx 和后端日志,都看到了请求,且后端返回了数据。

到这里我就郁闷了,无法复现 bug,怎么办呐,产品又催,每次去同步进度,问用户情况,都一副不耐烦的样子,怎么还没解决!

想了想,可能性最大的只剩下网络问题了,于是模拟网络情况,低网速等,都没问题,最后打断连接发现超时的时候会有很长时间的 loading,只有这种可能了,就算模拟很低的网速都没出现过很长时间的 loading。

那么问题来了,现在上报的,出现 loading 的两个用户,都是 OPPO R15,且重复几次都是同样的结果,一直 loading (用户应该没等待超过超时时间) 按说网络抖动、断掉应该是随机,很少的情况才对呀。

现在手上一直拿不到 OPPO R15 手机,也无法重现 bug

跪求各位大神,现在这种情况还有什么情况会导致这样的 bug 呢?一个小前端不胜感激. . .

再不解决估计就要被产品拉去祭天了

总不能告诉产品 OPPO R15 手机网络有问题吧,人家肯定不信啊,我自己都不信。

2190 次点击
所在节点    问与答
8 条回复
wxsm
2018-08-17 16:12:48 +08:00
难为无米之炊。连 bug 都重现不了,谈何解决?
casztg
2018-08-17 16:19:18 +08:00
。。。要不改个提示语?
您当前网络环境不好
easylee
2018-08-17 16:22:57 +08:00
先用文案处理一下,背后赶紧排查 bug。
chairuosen
2018-08-17 16:27:05 +08:00
如果特定机型稳定复现,那应该是 ajax 回调里代码某一步报错了。

比如$.get(xxx).then(()=>{
doSomething();
this.loading = false;
})


很可能 doSomething 报错了,就一直 loading。错误一定是常规复现不了的,比如访问 localStorage 平时绝对不会出错,但是 safari 无痕模式就会报错

另外你要建立一个客户端 pingback 机制,客户端可以记一些 Log 发到服务器。
这样你就知道客户端到底有没有报错
FelixXie
2018-08-17 16:27:09 +08:00
oppo 手机问题确实多。之前也碰到过。不兼容或者写法有问题吧。没有手机调试解决有点儿难
66beta
2018-08-17 16:34:55 +08:00
我手里一加 3T 断流就很严重,你看看日志是不是 4G 网络
不会再买步步高家的手机了
JaxXu
2018-08-17 18:42:07 +08:00
贴代码最实际了,或者是那一部分有新语法运行不下去了呢
sm0king
2018-08-17 19:59:37 +08:00
@FelixXie 兼容什么的都检查了,这才是奇怪的。

@chairuosen 这种方式我们也做了,模拟环境里,除了超时都没出现报错的情况。

@66beta 说了有可能是网络抖动,但是老板和产品不管啊,必须要解决,或者给解决方案。

@casztg 也有想过减少超时时间,但不现实,因为有些接口可能会调用比较长的时间,比如要第三方的接口的那种。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/480765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX