上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.5 搜索异步化:优化搜索核心指标
NA化的搜索结果页在通用性及扩展性方面存在不足。搜索业务的历史积累较多,从面向浏览器服务进化为面向NA化服务,不是做几个NA化的场景这么简单,还需要考虑浏览器的生态。NA化的工作告一个段落后,要做的是优化用户在结果页上的体验,目标是优化页面的加载时长。
仔细研究搜索结果页会发现,用户在搜索不同的关键字时,页面中总会有一些资源是相同的,这些相同的资源与结果页的架构及布局相关,属于基础资源,不受具体的关键字影响。也就是说,如果提前加载这些基础资源,那么在用户发起搜索时,仅需加载与关键字相关的资源,这样就可以减少页面加载时间,实现优化结果页加载时长的目标。
团队的前端人员开发了一套异步搜索框架,提前对结果页的基础资源进行加载、解析、渲染。当有搜索请求时,由异步搜索框架实现对关键字相关资源的加载。但是,应用这套框架的前提是客户端需要提前创建一个浏览内核,预先加载这个异步搜索框架,当有搜索需求时,调用异步框架的接口,发起异步搜索。异步搜索框架有着不同的状态,也会出现异常的情况,当异步框架不可用的时候,客户端则使用原加载方案进行搜索。异步搜索流程如图1-6所示。
图1-6 异步搜索流程
这时候的客户端的搜索框架依然采用单浏览内核的方式承载内容(单浏览内核管理框架),在App启动后先加载异步搜索框架。但单浏览内核架构有一个局限,如图1-7所示,异步搜索框架或其他页面只能加载一个。当进入落地页时,浏览内核中加载的是落地页,而不是异步搜索框架,这时用户再次发起搜索就只能采用同步的方式。由此可见,异步搜索的覆盖率没有达到预期。
图1-7 异步搜索框架被落地页覆盖
这个阶段的端与云的协同优化,不仅关注功能的构建,还开始兼顾核心指标的优化。关于指标优化的更多内容,将在第8章和第9章详细介绍。