Velocity资源加载过程

简介: Velocity资源加载过程

以下全文根据小明哥(minghe)的讲解总结而来:)

资源加载的主要角色:

ResourceManager: 资源的管理者,负责资源的加载,过期缓存的更新。

ResourceCache: 资源缓存的位置,使用线程安全的LRU Map的封装。

ResourceLoader: 资源的加载者,根据数据源不同,Velocity六种类型的Loader,也可以实现自己的Loader。

StringResourceRepository: 资源的寄存器,若Repository中有有效的数据则不用再从数据源读取数据。

Resource: 资源的抽象:包含资源本身以及过期时间、过期检查间隔、上次修改时间等资源相关的信息。

角色间的关系:

在有资源请求到来的时候,ResourceManager会根据以下步骤予以响应:

1、查询ResourceCache中的资源并检查是否过期。有数据且未过期,直接返回数据;无数据或已过期,步骤2

2、遍历ResourceLoader数组,使用Loader尝试加载数据,得到数据中止返回数据(若配置了缓存,则存放缓存)。

Ps:若是StringResourceLoader,会首先去StringResourceRepository取数据,然后再去加载数据。

Finally,VelocityEngine/VelocityServlet获取模板资源,向RuntimeInStance的ResourceManager请求数据,拿到Template数据。

剩余的就是渲染引擎的工作了。

(完)

本文作者 : cyningsun

本文地址https://www.cyningsun.com/02-28-2014/velocity-resource-load.html

版权声明 :本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 CN 许可协议。转载请注明出处!

目录
相关文章
|
移动开发 Dart JavaScript
Flutter for Web 首次首屏优化——JS 分片优化
Flutter for Web 首次首屏优化——JS 分片优化
1289 1
Flutter for Web 首次首屏优化——JS 分片优化
|
前端开发 JavaScript Go
浏览器原理 22 # 渲染流水线:CSS如何影响首次加载时的白屏时间?
浏览器原理 22 # 渲染流水线:CSS如何影响首次加载时的白屏时间?
125 0
浏览器原理 22 # 渲染流水线:CSS如何影响首次加载时的白屏时间?
|
JavaScript
项目性能优化之给dist文件夹中chunk-vendors.js做splitChunks分包,从而减少首屏加载时间
项目性能优化之给dist文件夹中chunk-vendors.js做splitChunks分包,从而减少首屏加载时间
677 0
|
前端开发 JavaScript Go
前端性能优化实践之 加载和渲染原理(8)
前端性能优化实践之 加载和渲染原理(8)
371 0
|
存储 缓存 JavaScript
Web图片资源的加载与渲染时机
Web图片资源的加载与渲染时机
256 0
|
缓存 JavaScript 前端开发
北海(Kraken) v0.9 — 支持 QuickJS 首屏加载再快 20%
北海(Kraken) v0.9 — 支持 QuickJS 首屏加载再快 20%
873 0
北海(Kraken) v0.9 — 支持 QuickJS 首屏加载再快 20%
|
前端开发 JavaScript API
|
测试技术 图形学 Android开发
无限滚动加载最佳实践
无限滚动加载最佳实践 无限滚动(Infinite scrolling),有时候被称为无尽滚动(endless scrolling),这种技术允许用户在大量内容上滚动,眼中看不到结束的地方。
923 0