典型场景:一堆非常需要耗时的数据,每次更新都需要重新计算,但是更新的频率并不高。

使用缓存可以有效的减少计算和查找时间。

1. 数据快照

典型场景:Google Docs 文档后端返回的模型,优先利用快照

Google Docs 文档服务器会根据某种策略,对 Google Docs 文档的用户操作变更集(changeset)合并后的结果进行一次快照,确保用户再次打开 Google Docs 文档时,优先使用快照内容,节省每次服务端实时合并变更集的耗时。

2 缓存重复 dom api 调用结果

典型场景: Google Docs 文档在进行文字布局计算时,会高频执行 getBoundingClientRect 获取文字节点布局信息。

对于相同字体字号的文字, 如果只改变文字颜色, 文字尺寸不变, 可以复用结果.

3 基于数据模型缓存结果

典型场景:Google Docs 表格的 html 模板构建流程

在 Google Docs 表格中,基于单元格的行索引,列索引,单元格属性的三个组合属性,创建单元格 html 片段缓存对象,这样能够在表格的部分单元格发生属性变化之后,仅更新部分单元格的 html片段,达到重用历史计算结果的效果。

©著作权归作者所有:来自51CTO博客作者mb607558ea4fef1的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Web 应用优化 - 充分利用缓存
  2. volatile关键字?MESI协议?指令重排?内存屏障?这都是啥玩意
  3. MySQL 续集 01
  4. SYSAUX表空间占用过大情况下的处理(AWR信息过多)
  5. 从运维角度看中大型网站架构的演变之路
  6. MYSQL存储引擎与SQL性能下降原因
  7. 阿里云Linux安装软件镜像源
  8. MySQL性能相关配置整理
  9. Nginx反向代理Tomcat访问时浏览器加载失败,出现 ERR_CONTENT_LENG

随机推荐

  1. 值类型对象的两种表示形式
  2. net 使用 data.oracleclient 出现的错误
  3. 经典的IoC/DI容器--StructureMap
  4. 最新版近乎v5.0新型社区发布介绍
  5. 什么是构造器?引用类型是什么?
  6. 用Shape做动画的实例详解
  7. ASP.NET MVC 遇到JSON循环调用的问题应该
  8. asp .net 面试题及答案分享
  9. angularjs是怎么为ng-click事件传递参数
  10. WPF核心的技术--数据绑定