返回

闲鱼社区「秒开」揭秘:从“等等”到“直开”,相见不再恨晚

前端

前言
作为闲鱼的主要交易场景,闲鱼社区肩负着商品曝光、交易撮合以及内容服务等多项重要使命。随着闲鱼业务的高速发展,闲鱼社区中的板块日趋丰富,内容形态也越来越多元。

闲鱼社区作为交易的入口,需要承担大量不同类型的信息流式展示,并提供高效的互动体验,保障社区的活跃度,这对前端页面的性能提出了巨大的挑战。

面对着性能挑战,闲鱼前端团队一直秉承着“用户体验第一”的理念,对页面性能进行了全方位的诊断和优化,实践了多种优化方案,取得了显著的性能提升效果。

优化方案与效果
1. 数据预加载
在闲鱼社区中,用户常常需要在不同页面之间跳转,比如从商品详情页跳转到店铺主页,再跳转到分类页面。传统情况下,这些页面都是在用户点击时才开始加载数据,这会导致页面跳转时出现明显的卡顿。

为了解决这个问题,闲鱼前端团队采用了数据预加载技术。数据预加载是指在用户跳转到某个页面之前,提前加载好该页面的数据,这样当用户点击跳转时,页面可以直接渲染,而无需等待数据加载,从而消除卡顿。

2. 惰性加载
在闲鱼社区中,有的页面内容非常丰富,比如首页的信息流。如果把所有内容都一次性加载出来,会对网络带宽和浏览器性能造成很大的压力,导致页面加载缓慢。

为了解决这个问题,闲鱼前端团队采用了惰性加载技术。惰性加载是指只加载当前视口内的内容,当用户向下滚动页面时,再加载更多内容。这样可以有效减少页面加载的资源开销,提高页面加载速度。

3. 代码优化
在闲鱼社区中,有很多页面都是使用 Weex 框架开发的。Weex 是一种跨平台的移动开发框架,它可以将 JavaScript 代码编译成原生控件,从而实现跨平台渲染。

为了提高 Weex 页面的性能,闲鱼前端团队对 Weex 代码进行了优化,比如减少不必要的代码,优化组件结构,减少组件层级,优化样式代码,使用更高效的 JavaScript 库等等。

4. 网络优化
在闲鱼社区中,很多页面都需要加载大量图片和视频等资源。如果这些资源的加载速度太慢,会影响页面的加载速度。

为了解决这个问题,闲鱼前端团队对网络请求进行了优化,比如使用 CDN 加速资源加载,使用 HTTP/2 协议,压缩资源大小,减少资源请求数量等等。

优化效果
通过以上优化方案,闲鱼社区前端页面的性能得到了显著的提升。据统计,首页的加载速度从原来的 3 秒降低到了 1 秒,商品详情页的加载速度从原来的 2 秒降低到了 0.5 秒,店铺主页的加载速度从原来的 2.5 秒降低到了 1 秒。

这些优化成果极大地提升了闲鱼社区的用户体验,用户在闲鱼社区中浏览商品、进行交易变得更加流畅,也更加愿意在闲鱼社区中停留和互动。

总结
闲鱼社区前端页面的性能优化是一个持续的过程,闲鱼前端团队还会继续探索和实践新的优化方案,以进一步提升闲鱼社区的用户体验,让闲鱼社区成为用户最喜欢的交易平台。