本周工作思考
IE问题修复总结
IE目前总体的使用量比较少,从我们的统计结果上看,少于我们总使用的0.1%,但是部分用户是我Tier1的大客户,为了支持这部分用户,我们目前还是在核心功能上兼容IE11,基本原则是核心功能支持,其他功能尽可能完全支持,支持不了就是降级支持,使用新特性的新功能引导用户使用Chrome或者Edge,即样式可能存在问题,但是不影响功能使用。IE上的兼容性bug,JP站点重点支持,CN站使用IE的用户量少于JP站,所以CN站IE兼容性问题的优先级会较低。
从几个月的趋势看,IE11的使用量在逐渐减少,虽然幅度很小,Edge的使用量逐渐增加,我们周期性的观察这个数据以响应我们对IE的支持力度。
目前IE上遇到问题主要来源于2个,1是第三方依赖包不支持IE,引入了一些ES6的语法,导致页面和基于phantomjs的分享卡页面白屏,2是因为我们的js代码量比较大,导致了IE上打开页面的性能比较差,特别是一些硬件性能不是特别好的电脑,初次打开要等很长时间。
目前的解决思路是在每个项目里增加ie相关的polyfill,部分仓库使用core-js,typescrip编译高版本语法,但是一些js特性是全局特性且是第三方已经打包好的代码,就没有被编译处理,导致出现bug,基于这种情况,在需要适配IE的应用里增加polyfill,而不是在基础库或者自研依赖里增加polyfill,保证基础库的纯粹,另外 随着微软官方停止IE更新个支持,未来2年内,绝大部分目前使用IE的客户会转向Edge或其他浏览器。
钉钉飞书企业微信的支持问题
随着我们对接的钉钉、飞书、企业微信的客户越来越多,相关问题的反馈也多起来,流转到我们研发这边的也变多的趋势。
从数据的另一个角度上说这是一个好事,说明用户的使用量再提升,用户类型更加丰富,也促使我们更加重视在这些平台上使用体验, 从过往经验总结上来说,使用次数和bug数成正比,比如针对某功能,使用10000次,平均会产生1个反馈问题,0.2个线上bug。
钉钉、飞书、企业微信的桌面目前都是基于Election的,从页面应用来说,和浏览器一致,但是因为不用的平台上的交互策略有所不同,所以有些功能上可能需要做适应性的匹配,比如这些平台对打开新窗口做了限制,需要调用其sdk提供的方法打开,目前我们除了引用了dingding的sdk外,飞书,企微的sdk我们暂时没有引入,所以对于这类打开,我们使用当前窗口的打开的方式。
兼容的平台多了,对我们的技术设计有了一定的约束,技术设计时,需要考虑这些平台的兼容性,这就需要我们更多的熟悉这些平台的技术特性和交互特性,才能针对的性的做出合理的技术设计。