搜索结果页优化

业务场景

在App里面,输入一个关键词,获得一个搜索结果,这是一个很常见的一个功能场景。对于前端而言,有不少事情能够尝试和实践。

优化方案

1. 首屏服务端渲染

第一页能够使用服务端渲染,减小页面的请求量,可快速渲染
方案一:node+ejs
适用的场景:页面的复杂度低,不存在大量的组件或者模块间信息的同步。
方案二:node+vue+vuex

适用的场景:页面的复杂程度高,含有大量的组件和组件间的信息流通或者同步。使用node+vue+vuex,方便团队成员间的协做开发和后期维护。前端

2. 预先加载数据:接下来几屏数据
业务场景:搜索出来的结果,滑动时,显示更多的结果

方案一:请求第一屏幕的数据时,同时也会预请求第二屏幕的据,以此类推。滑动页面的时候,就不会存在卡顿的状况
方案二:让客户端提早预取数据,预取的时机能够根据本身的业务场景判断vue

3. 共享数据:
业务场景:搜索结果页面,点击每个Item,能够进入详情页面。

方案:一级页面和二级页面能够进,行共享数据node

4. 客户端提早预取通用库
前端通常都会使用一些通用库,通常状况都不会改变,好比说zepto.js,能够让客户端提早预取缓存
5. 服务端推送包

服务端推送相关的信息包vuex

后记
尝试使用http2.0