Skip to content

About

Saro50.github.io

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

相关业务页面直出使用分析

定义概念:

  • 页面直出 : 用户请求直接返回的html文档.(区别于仅返回json数据)

  • 时效性业务 : 与时间相关的业务。例如各类新闻.

  • LBS业务 : 基于用户地理位置相关的业务.

  • 对比页面直出与现在全ajax渲染两种展现方式的优劣,时序图分析

    • ajax拉取数据流程:
      • 离线包或请求页面框架加载
      • js加载解析执行
      • 拉取数据,渲染页面
      • 呈现数据
    • 页面直出流程分析:
      • C端请求,前端服务直接返回完整页面
      • js加载实行
      • 呈现数据
  • 页面直出优势分析,静态化方式优化分析

    • 可控度更高的性能优化方式
    • 简化首页渲染逻辑
      • 首页可以非常快的展示数据
    • 简化现有开发流程
      • 由于出数据,也在前端,所以对测试和业务开发完成度,前端有更大的把控程度。( 即前端服务端开发完毕,就可以利用测试固件进入业务测试阶段,而不必等待CGI的开发,待CGI开发完成,业务部分基本不用动,直接对CGI数据进行筛选和过滤即可,有效的提高单个CGI的复用率,将实际业务与CGI解耦,可以使得他们更专注于数据模型 )
      • 性能方面,前端服务器可以缓存部分请求数据,以减少对后端请求和缩小响应时间
    • 静态化好处
      • 减少服务端响应时间
      • CDN路由优化
      • 常用于只有时效性的信息发布类业务
    • 静态化问题
      • 很多基于定位的服务,难以静态化
      • 静态化目前比较典型的适用业务,吃喝玩乐的全国页(这个页面是在定位失败后,拉取的一个配置数据进行展示 ,数据只有时效性,与位置无关。 )
  • 结合现有业务直出特点,分析适用情况,简单的解决方案

    • LBS业务,需要根据定位信息来提供相关服务,例如吃喝玩乐的附近,现在的做法是加载完所有资源后,在对应执行脚本位置去拉取定位信息,之后根据结果请求相关接口。
      • 对于这种情况,可以预读取定位信息,可以在请求页面的时候就带上定位信息,在当前页面操作时就读取到下次可能需要的定位信息,这样在服务端拼视图的时候就知道该用什么样的数据了。demo

About

Saro50.github.io

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages