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

简介: 今天下午杭州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等领域的应用,并涵盖了从数据预处理、选择网络结构到训练与评估的实践流程。理解并掌握这些知识,有助于更好地运用神经网络解决实际问题。随着技术发展,神经网络未来潜力无限。
|
机器学习/深度学习 搜索推荐 算法
基于机器学习的用户行为分析与个性化推荐系统
传统的用户行为分析和推荐系统常常受限于规则的刻板和模型的简单,无法准确捕捉用户的个性化需求。本文基于机器学习技术,探讨了一种更加灵活、精准的用户行为分析与个性化推荐系统设计方法,通过深度学习模型结合大数据分析,实现了对用户行为的更细致把握和更个性化的推荐服务。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
快来零门槛、即刻拥有 DeepSeek-R1 满血版
随着人工智能技术的发展,DeepSeek作为一款新兴推理模型,凭借强大的技术实力和广泛的应用场景崭露头角。本文基于阿里云提供的零门槛解决方案,评测DeepSeek的部署与使用。该方案支持多模态任务,涵盖文本生成、代码补全等,融合NLP、IR和ML技术,提供快速实现AI应用的便利。用户无需编码,最快5分钟、最低0元即可部署DeepSeek模型。阿里云还提供100万免费Token,适合预算有限的个人或小型团队试用。通过Chatbox客户端配置API,用户可轻松体验智能交互功能,如数学提问和代码书写等。
45926 7
|
10月前
|
人工智能 知识图谱
成熟的AI要学会自己搞研究!MIT推出科研特工
MIT推出科研特工SciAgents,结合生成式AI、本体表示和多代理建模,实现科学发现的自动化。通过大规模知识图谱和多代理系统,SciAgents能探索新领域、识别复杂模式,加速新材料发现,展现跨学科创新潜力。
168 12
|
自然语言处理 监控 测试技术
1688代采集运系统搭建:实现采购订单处理自动化
1688代采集运系统为海外买家及跨境电商提供一站式服务, 包括商品采集、订单管理、国内集货与国际运输。系统简化采购流程, 提高效率, 并支持多平台与多语言。通过API接口实时获取商品信息, 自动处理订单与物流, 支持多种支付方式, 便于全球用户使用。系统搭建需注册认证并接入API, 进行测试优化。此系统助力国货全球化。
|
C语言
C语言模块化程序设计探讨
C语言模块化程序设计探讨
261 0
|
人工智能 计算机视觉 Python
AI计算机视觉笔记八:基于mediapipe的虚拟绘画
该项目利用MediaPipe手部关键点识别技术,实现了隔空绘画功能。用户可以通过手势控制绘画工具,选择颜色或橡皮擦。环境配置基于`mediapipe_env`,在PyCharm中运行。项目包括两个文件:`AiVirtualPainter.py`负责绘画逻辑,`HandTrackingModule.py`用于手部关键点检测。此项目展示了AI技术在互动应用中的潜力,适合初学者实践与学习。
262 10
|
存储 负载均衡 中间件
构建可扩展的分布式数据库:技术策略与实践
【8月更文挑战第3天】构建可扩展的分布式数据库是一个复杂而具有挑战性的任务。通过采用数据分片、复制与一致性模型、分布式事务管理和负载均衡与自动扩展等关键技术策略,并合理设计节点、架构模式和网络拓扑等关键组件,可以构建出高可用性、高性能和可扩展的分布式数据库系统。然而,在实际应用中还需要注意解决数据一致性、故障恢复与容错性以及分布式事务的复杂性等挑战。随着技术的不断发展和创新,相信分布式数据库系统将在未来发挥更加重要的作用。
|
存储 缓存 监控
在Linux中,如何优化虚拟机和容器的性能和资源使用?
在Linux中,如何优化虚拟机和容器的性能和资源使用?
|
XML Java Maven
Maven 生成可运行的jar的多种方式
Maven 生成可运行的jar的多种方式
406 0
Maven 生成可运行的jar的多种方式