最近遇到一个 bug,页面一直 loading 让前端定位。
定位过程是:首先检查前端代码(出问题先检查自身原因),排除了代码方面的问题,然后开始检查返回错误,我怀疑是一直在 pending,于是模拟了各种错误情况,都没复现 bug。然后开始检查后端日志,看有没有返回数据,最后排查了 nginx 和后端日志,都看到了请求,且后端返回了数据。
到这里我就郁闷了,无法复现 bug,怎么办呐,产品又催,每次去同步进度,问用户情况,都一副不耐烦的样子,怎么还没解决!
想了想,可能性最大的只剩下网络问题了,于是模拟网络情况,低网速等,都没问题,最后打断连接发现超时的时候会有很长时间的 loading,只有这种可能了,就算模拟很低的网速都没出现过很长时间的 loading。
那么问题来了,现在上报的,出现 loading 的两个用户,都是 OPPO R15,且重复几次都是同样的结果,一直 loading (用户应该没等待超过超时时间) 按说网络抖动、断掉应该是随机,很少的情况才对呀。
现在手上一直拿不到 OPPO R15 手机,也无法重现 bug
跪求各位大神,现在这种情况还有什么情况会导致这样的 bug 呢?一个小前端不胜感激. . .
再不解决估计就要被产品拉去祭天了
总不能告诉产品 OPPO R15 手机网络有问题吧,人家肯定不信啊,我自己都不信。
1
wxsm 2018-08-17 16:12:48 +08:00
难为无米之炊。连 bug 都重现不了,谈何解决?
|
2
casztg 2018-08-17 16:19:18 +08:00
。。。要不改个提示语?
您当前网络环境不好 |
3
easylee 2018-08-17 16:22:57 +08:00 via Android 1
先用文案处理一下,背后赶紧排查 bug。
|
4
chairuosen 2018-08-17 16:27:05 +08:00 1
如果特定机型稳定复现,那应该是 ajax 回调里代码某一步报错了。
比如$.get(xxx).then(()=>{ doSomething(); this.loading = false; }) 很可能 doSomething 报错了,就一直 loading。错误一定是常规复现不了的,比如访问 localStorage 平时绝对不会出错,但是 safari 无痕模式就会报错 另外你要建立一个客户端 pingback 机制,客户端可以记一些 Log 发到服务器。 这样你就知道客户端到底有没有报错 |
5
FelixXie 2018-08-17 16:27:09 +08:00
oppo 手机问题确实多。之前也碰到过。不兼容或者写法有问题吧。没有手机调试解决有点儿难
|
6
66beta 2018-08-17 16:34:55 +08:00 via Android
我手里一加 3T 断流就很严重,你看看日志是不是 4G 网络
不会再买步步高家的手机了 |
7
JaxXu 2018-08-17 18:42:07 +08:00
贴代码最实际了,或者是那一部分有新语法运行不下去了呢
|
8
sm0king OP @FelixXie 兼容什么的都检查了,这才是奇怪的。
@chairuosen 这种方式我们也做了,模拟环境里,除了超时都没出现报错的情况。 @66beta 说了有可能是网络抖动,但是老板和产品不管啊,必须要解决,或者给解决方案。 @casztg 也有想过减少超时时间,但不现实,因为有些接口可能会调用比较长的时间,比如要第三方的接口的那种。 |