从事前端开发将满一年了,期间遇到不少问题,最坑的是一些自己不知道的坑。所以写出来警示后人。
1. ios端的sort方法无效
描述:
之前做一个小程序的聊天列表的时候需要用到sort进行列表排序。嗯,后来有用户反应最新回复不置顶。。。检查了一遍又一遍的代码。发现没问题,在小程序IDE里面查看也完全没问题。最坑的是项目做好直接上线,没有测试环节,顶多是几个开发人员用自己手机查看一下,但是开发人员才几个,完全无法做到准确的测试,至于后来怎样了。。。所在团队解散了,所以如果这个小程序还在运营的话,那么我觉得这个Bug应该还在吧hahahaha~
这个bug是后来在目前的公司做一个模拟数据的时候需要将一个数组乱排,然后手机预览的时候发现没有乱排才发现的,发现之时非常的惊奇呀。立刻想起了上一家公司留下的bug我的天。
解决方法:
自己重写一些sort呗,还能怎么办
具体方法可以看这位大神的操作啦 IOS中sort方法的兼容问题
2.部分安卓机的console不兼容
描述:
可能是我的基本功不够扎实啊。完全没有意料到这个居然也是有兼容。之前做一个h5,突然测试的小伙伴来告诉我有一台测试机有问题。。。抱着别的测试机都可以,为什么那台就不行的想法,和测试怒怼。“肯定是那个机子有问题。。。”云云。。最后面实在是无法睡服她,所以只能再辛苦一下自己,满足她的要求。自己debugger了一下。当然是用console去debugger的。再一次陷入了深深的恐惧,为什么,为什么我的程序跑不起来,连log都没有。。。好吧,真的很绝望,希望大家以后主要不要留log在项目里,或者重写一下
解决方法:
重写一下,或者全部注释掉, 像这样 window.console = { log: function () {} } 就可以避免出现上述问题啦
3. ios下的日期表示
描述:
一般情况下,我是这样表示一个日期的 ‘YYYY-MM-DD hh:mm:ss‘。但是之后要用这样一个日期获得时间戳的时候才知道自己太年轻了。在ios下new Date(‘YYYY-MM-DD hh:mm:ss‘)是行不通的。又是一个绝望的坑啊。试了好多遍,最后去问了ios开发才知道。你需要‘YYYY/MM/DD hh:mm:ss‘的格式才可以
解决方法:
乖乖照着斜杠的格式来吧, 像这样 new Date(‘2017/08/08 13:55:22‘)建议还是统一用斜杠的好
4.小程序下的DOMParser不可用
描述:
严格来说这不算是一个bug,但是由于之前在腾讯云提供的小程序的SDK里居然看到用的是DOMParser,感到十分惊奇。既然是你自己限制的在小程序里不可以使用DOM操作的函数,自己家提供的SDK里居然用了,这不是坑人吗。之前在IDE里用的好好的,后来总监告诉我真机上用不了的时候真是十万头了,主要是在xml的请求上面要用到来转换成json或者对象的
解决方法:
自己写一个转换的方法吧。不过转换量大的话真的很蛋疼,或者也可以找找有没有什么别的解决方法,顺便告诉我一声呗
自己写了一个实在是太烂不太好意思献丑,暴露水准,但是还是贴一下好了,[捂脸]
千万不要打我
5.mac上面使用calc的问题
描述:
之前在一个轮播图上面用到了绝对定位,然后根据其left来进行定位和轮播。之后考虑到在移动端手指滑动时候需要跟着手指滑动距离有一个偏移和弹簧的效果,所以加上了calc来计算偏移量。结果后面设计跟我说在mac下面这个轮播图点几次之后就失效了。奈何我没有mac,而且这是一个外包项目,也无法去设计那里看。还好有一位之前的同事有mac,就叫他帮忙看一下。最后发现逻辑什么的都没有问题。最终才怀疑到属性兼容上面,毕竟之前几次切换都可以,但是后面就失效了。真的非常的蛋疼啊。。。
解决方法:
在频繁切换的时候尽量不要使用到calc来定位,可以选择left或者translate
这个只要不要在频繁切换的时候使用left: calc(x + y);就好了,至于其他的还没有深入研究
(别的现在一下子想不起来了。。。持续更新吧,各位大人们如果有遇到很莫名其妙的记得评论一下告诉一下我呗,我会加上去一起共勉的,感激不尽)