听天猫工程师讲面向高清的前端开发

简介: 今天下午杭州GDG举办了谷歌 Women Techmakers活动,不少杭州的程序媛前来参加,论技术、聊艺术、谈人生。其中天猫前端工程师@Doris_fhy分享了《跨终端页面展现 高清化的解决方案》(YouTube),非常精彩。这里是一篇听讲笔记,和大家共享一下。

今天下午杭州GDG举办了谷歌 Women Techmakers活动,不少杭州的程序媛前来参加,论技术、聊艺术、谈人生。其中天猫前端工程师@Doris_fhy分享了《跨终端页面展现 高清化的解决方案》(YouTube),非常精彩。这里是一篇听讲笔记,和大家共享一下。

image.png


为何要面向高清?

据Doris_fhy介绍,天猫移动端访问中,有八成以上的用户使用高清屏。PC端虽然目前只有1%不到用户使用高清屏,然而高清屏是未来的趋势。


如何面向高清?

图标字体

纯色图标可以使用图标字体。

无论屏幕是视网膜、高清屏、普通屏,图标字体的效果都一样细腻平滑。一套字体可以通吃所有设备。

阿里开发的矢量图标库提供了大量精美的矢量图标,值得各位前端开发者一看。

对于中文图标,可以将字体的编码设定到对应的中文,例如“天猫”图标就编码为“天猫”,这样图标没有加载的时候可以显示相应的汉字。


SVG

图表可以使用SVG。

SVG是矢量图形格式,缩放时质量不会有损失。缺点是制作起来成本较高。


高清图片

一些色彩比较复杂的图片,例如天猫的商品图片,不适合用SVG来做。只能为不同设备准备不同尺寸的图片。

使用CSS媒体查询( CSS media queries ),根据不同设备加载不同品质的图片:

@mediaonly screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2){

        /* 2倍分辨率 执行样式*/

}

<img>标签加载的图片则用JavaScript替换,使用 window.devicePixelRatio 来判断是否为高清设备。

当然也可以在CDN层面解决。同一张图片,根据设备的不同,加载不同的版本。


加载速度

使用高清图片,可能会影响到加载速度。特别是对于图片很多的页面(比如商品图片众多的天猫首页)。因此,是否加载高清图片,除了判断是否为高清设备以外,还要考虑网速。

判断网速大致可以通过以下途径:

  • 根据ip来源判断是3G还是WiFi
  • 根据NetworkInformation.connection判断
  • 如果是移动app中访问的话,可以调用平台相应的API来获取网络类型
相关文章
|
机器学习/深度学习 数据采集 自然语言处理
理解并应用机器学习算法:神经网络深度解析
【5月更文挑战第15天】本文深入解析了神经网络的基本原理和关键组成,包括神经元、层、权重、偏置及损失函数。介绍了神经网络在图像识别、NLP等领域的应用,并涵盖了从数据预处理、选择网络结构到训练与评估的实践流程。理解并掌握这些知识,有助于更好地运用神经网络解决实际问题。随着技术发展,神经网络未来潜力无限。
|
算法 安全 Java
非启发式算法——中国剩余定理
非启发式算法——中国剩余定理
508 0
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
快来零门槛、即刻拥有 DeepSeek-R1 满血版
随着人工智能技术的发展,DeepSeek作为一款新兴推理模型,凭借强大的技术实力和广泛的应用场景崭露头角。本文基于阿里云提供的零门槛解决方案,评测DeepSeek的部署与使用。该方案支持多模态任务,涵盖文本生成、代码补全等,融合NLP、IR和ML技术,提供快速实现AI应用的便利。用户无需编码,最快5分钟、最低0元即可部署DeepSeek模型。阿里云还提供100万免费Token,适合预算有限的个人或小型团队试用。通过Chatbox客户端配置API,用户可轻松体验智能交互功能,如数学提问和代码书写等。
46120 7
|
人工智能 知识图谱
成熟的AI要学会自己搞研究!MIT推出科研特工
MIT推出科研特工SciAgents,结合生成式AI、本体表示和多代理建模,实现科学发现的自动化。通过大规模知识图谱和多代理系统,SciAgents能探索新领域、识别复杂模式,加速新材料发现,展现跨学科创新潜力。
263 12
|
自然语言处理 监控 测试技术
1688代采集运系统搭建:实现采购订单处理自动化
1688代采集运系统为海外买家及跨境电商提供一站式服务, 包括商品采集、订单管理、国内集货与国际运输。系统简化采购流程, 提高效率, 并支持多平台与多语言。通过API接口实时获取商品信息, 自动处理订单与物流, 支持多种支付方式, 便于全球用户使用。系统搭建需注册认证并接入API, 进行测试优化。此系统助力国货全球化。
|
C语言
C语言模块化程序设计探讨
C语言模块化程序设计探讨
427 0
|
存储 负载均衡 中间件
构建可扩展的分布式数据库:技术策略与实践
【8月更文挑战第3天】构建可扩展的分布式数据库是一个复杂而具有挑战性的任务。通过采用数据分片、复制与一致性模型、分布式事务管理和负载均衡与自动扩展等关键技术策略,并合理设计节点、架构模式和网络拓扑等关键组件,可以构建出高可用性、高性能和可扩展的分布式数据库系统。然而,在实际应用中还需要注意解决数据一致性、故障恢复与容错性以及分布式事务的复杂性等挑战。随着技术的不断发展和创新,相信分布式数据库系统将在未来发挥更加重要的作用。
|
存储 缓存 监控
在Linux中,如何优化虚拟机和容器的性能和资源使用?
在Linux中,如何优化虚拟机和容器的性能和资源使用?
|
Java 测试技术 项目管理
产品入门第三讲:Axure产品流程图绘制
产品入门第三讲:Axure产品流程图绘制
420 0
产品入门第三讲:Axure产品流程图绘制
|
XML Java Maven
Maven 生成可运行的jar的多种方式
Maven 生成可运行的jar的多种方式
707 0
Maven 生成可运行的jar的多种方式