今天下午杭州GDG举办了谷歌 Women Techmakers活动,很多杭州的程序媛前来参加,论技术、聊艺术、谈人生。其中天猫前端工程师@Doris_fhy分享了《跨终端页面展示 高清化的解决方案》(YouTube),很是精彩。这里是一篇听讲笔记,和你们共享一下。前端
据Doris_fhy介绍,天猫移动端访问中,有八成以上的用户使用高清屏。PC端虽然目前只有1%不到用户使用高清屏,然而高清屏是将来的趋势。web
纯色图标可使用图标字体。segmentfault
不管屏幕是视网膜、高清屏、普通屏,图标字体的效果都同样细腻平滑。一套字体能够通吃全部设备。网络
阿里开发的矢量图标库提供了大量精美的矢量图标,值得各位前端开发者一看。前端工程师
对于中文图标,能够将字体的编码设定到对应的中文,例如“天猫”图标就编码为“天猫”,这样图标没有加载的时候能够显示相应的汉字。app
图表可使用SVG。字体
SVG是矢量图形格式,缩放时质量不会有损失。缺点是制做起来成本较高。编码
一些色彩比较复杂的图片,例如天猫的商品图片,不适合用SVG来作。只能为不一样设备准备不一样尺寸的图片。spa
使用CSS媒体查询( CSS media queries ),根据不一样设备加载不一样品质的图片:code
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2){ /* 2倍分辨率 执行样式*/ }
<img>
标签加载的图片则用JavaScript替换,使用 window.devicePixelRatio
来判断是否为高清设备。
固然也能够在CDN层面解决。同一张图片,根据设备的不一样,加载不一样的版本。
使用高清图片,可能会影响到加载速度。特别是对于图片不少的页面(好比商品图片众多的天猫首页)。所以,是否加载高清图片,除了判断是否为高清设备之外,还要考虑网速。
判断网速大体能够经过如下途径: