某年某日,产品捧着两个手机到我面前,啪的摆成一排。
‘你看看,为啥我的手机跟小白的手机商品显示顺序不一样呢?’
我立即掏出了我的手机,看了下我的是没问题的。开发就这点毛病,自己的没问题别人的有问题那就是机型适配问题,和代码无关,坚决不承认自己的锅。
但是我当时想的是,会不会后端的接口返回值没有排序导致的乱序呢。
后端坚决地说绝对是一致的,但我不信啊,还是抓包看了一下,嗯...果然是相同的。
那既然接口数据相同,代码处理也相同,但是只有个别机型有问题的话,只能是某个方法对于部分浏览器不兼容???
然后找代码中出问题的部分开始一一排查。最终锁定问题出现在sort()方法。
写法类似:
list.sort((a, b) => return a.v - b.v })
在a.v - b.v结果为0的时候导致两方出现了差异。
那么是因为什么呢,后来搜索了一番,发现了一个答案
原文链接:https://www.cnblogs.com/yzeng/p/3949182.html
解决办法也是规避了0的返回值,之后测试就没有问题了,不过仍然需要排查其他场景。
完毕---------