发现了一个令我震惊的前端面试绝杀题--移动端浏览器兼容

2017-05-08 23:19:52 +08:00
 jackon

有没有遇到过移动端的浏览器兼容问题?

最近一周,面试了 20+ 人,知道这里存在问题的,不到 4 个人。
而这四个人里,大概只有 1 个哥们实际处理过。

大部分人都是反问我:
Safari / chrome / Firefox 上没有多少兼容性问题吧?
我一直认为是一个非常基础的问题,
认真工作半年以后都会知道的基础问题。

我想,这应该是因为,
大部分的项目,
没有用户反馈/投诉机制,
前端没有监控能力,
所以,根本不知道这里有多少的体验问题。

不知道是我们公司收到的简历质量太低,
还是当前业界现状。

做为一个非专业的前端,列举几个我知道的坑

  1. 虚拟键盘引起的兼容问题。比如: http://stackoverflow.com/questions/24557780/ios-7-fixed-footer-toolbar-breaks-on-virtual-keyboard
  2. touch 事件引起的。-- 手机端需要单独处理,但手机浏览器之间是否一致,不了解。
  3. iOS 和 android 系统导致的差别。比如,微信内置浏览器。
  4. 微信浏览器,也可以列一条专门吐槽了。
  5. 安卓厂商们魔改(魔法一般的莫名其妙的修改)过的操作系统。三星手机都遇到过,大概是 input 内的元素居中有问题。至于国内厂商们魔改出来的奇葩兼容问题,罄竹难书。

不是说需要面试者回答出具体的细节,
而是,至少应该知道这里有坑吧。
即使自己的项目没有能力检测出这些 bug,
难道也没有听朋友们聊起过?
或者,看文档的过程中,就没有一篇文章提到过这类问题?
在起码,准备面试的时候,经典面试题里也可以搜到过吧。。。

有一点不太理解,为什么。

大家如果有其他浏览器兼容的坑,也可以一起吐槽一下。
我也补全一下自己的清单。
thanks :)

最后,夹带私货。
我司招前端。
硅谷创业公司,已经获得 VC 融资,主要创始人都有多次创业经验并成功退出。
核心产品是,利用大量的数据分析,帮助应聘者找到适合自己的职位,目前主要针对北美市场。
详细: https://www.v2ex.com/t/358568

如果你恰好知道这些问题,或者感觉这种问题太水,
不妨找我聊聊新的工作机会,万一我们我们一起工作会更开心呢?
我的微信: kunth002

37858 次点击
所在节点    程序员
121 条回复
silencefent
2017-05-09 09:02:52 +08:00
兼容性問題會隨著瀏覽器版本更迭變化,如果不是資深專傢,隨機應變能説出條條道理太難爲人
就像你用 GPU,A 卡或者 N 卡,能説出哪些游戲會出 bug 一樣
Niphor
2017-05-09 09:07:55 +08:00
遇到兼容性问题不是很正常吗,没人能保证知道所有兼容性问题的解决方案。
况且浏览器天天更新,你就知道你现在知道那几条是还有的,或者没有新的吗?
遇到了,才叫问题,又不是都写在 changelog 里的。
tlday
2017-05-09 09:12:26 +08:00
不太喜欢这种招聘形式
qiqico
2017-05-09 09:40:47 +08:00
有关兼容问题,一般知道用 caniuse 以及 autoprefix 就可以了

不过,如果一个做前端几年经验的,应该能够顺口说出一些兼容问题和解决方案
SakuraKuma
2017-05-09 09:43:02 +08:00
我个人觉得,招人只需要他知道,这个兼容性问题可能涉及到那些知识,大概知道是什么原因造成的就可以了。
具体解决方案不必要全都知道,毕竟前端坑本来就多。
kutata
2017-05-09 09:45:30 +08:00
sm0king
2017-05-09 09:47:12 +08:00
哦,这些坑都踩过,看来写原生的很少呀
还有 GPU 方面的坑(低端安卓机卡成翔,最优化开启 GPU 等等)
兼容方面,最蛋疼的是 qq 浏览器和微信浏览器,但这两个加起来也不如一个 UC
国产机里最蛋疼的是华为的机器,特别是安卓 4.1 的,4.4 和 4.4.1 之后就好很多了,我一般把华为的手机跟 IE6 相提并论的,想象下它坑有多多了
还有简单的样式不兼容根本不叫坑好吧. . . .
paradoxs
2017-05-09 09:47:49 +08:00
@test4zhou @nicevar 招商银行 京东 大众点评 携程 以及等等.. 已经有很大一部分的页面是 web 了...
digimoon
2017-05-09 09:49:50 +08:00
微信的 tbs 就是移动设备上的 ie6
TomIsion
2017-05-09 09:51:22 +08:00
iOS fixed 的 input 标签在唤醒虚拟键盘的时候会移动位置 一般使用局部滚动取代全局滚动修复

不过话说 其实我觉得很多人回答不出来 是因为不知道面试官想问的内容是什么...

> 有没有遇到过移动端的浏览器兼容问题?

这种问题我会以为是响应式页面相关的...
LichMscy
2017-05-09 09:52:28 +08:00
"""安卓厂商们魔改(魔法一般的莫名其妙的修改)过的操作系统"""

魔改不是这个意思啊
learnshare
2017-05-09 09:53:05 +08:00
其实大部分移动端的前端都可能遇到过,只不过选择性忽略掉了
光微信浏览器的各种问题就够折腾了
TomIsion
2017-05-09 09:54:28 +08:00
@sm0king 华为简直 很多 ES3 的方法都要兼容... 而且很难排错... lodash 要使用兼容 IE8 的版本


@paradoxs 指的是内嵌 webview 的形式?
anthozoan77
2017-05-09 09:54:38 +08:00
感觉自己啥都不会...噗...
yhxx
2017-05-09 09:55:48 +08:00
面试了这么多人几乎没人遇到过各种奇葩手机上的各种奇葩问题,你是不是该反思为什么给你投简历的都是这样的人了?
paradoxs
2017-05-09 09:58:32 +08:00
@TomIsion 对...
jackon
2017-05-09 10:01:29 +08:00
关于大家质疑为什么用兼容性做为面试题,增加了第二条附言。
Quaintjade
2017-05-09 10:02:11 +08:00
有些浏览器不支持 Destructuring assignment from variables
还有,桌面浏览器滚动条宽度一般为 17px,移动端浏览器滚动条一般不占宽度
TomIsion
2017-05-09 10:05:22 +08:00
@paradoxs

内嵌 webview 对于前端开发来说也是神坑贼多...
目前在做这方面的开发...
我们和做 APP 的不在一个部门,每次遇到点 bridge 的问题都很痛苦...
kisnows
2017-05-09 10:10:41 +08:00
移动端只兼容 Android 4.1 以上,ios 8.0 以上,没有碰到过什么特别的 bug.
用新 css 特性的时候都会上 caniuse 上查一下,而且配合 autoprefix 不会有什么问题。
况且兼容性这个真不能算技术能力,顶多算踩没踩到坑。

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

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

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

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

© 2021 V2EX