ModelIndexdb 模型缓存
框架基于Indexdb构建了一个用于缓存模型的缓存器,将模型缓存到浏览器中,其适用场景: 1.当你的服务器是小水管,每个模型都加载得很慢,你期望用户在加载完毕之后,以后都不用再下载模型了
2.当你的园区中有许多重复的模型,你不希望每个模型都去重复加载(当然你也可以下载一个模型之后,使用clone
来复制)
3.与第一点相似,不过另外的情况是,如果你的模型太大了,导致每次加载都很慢,可以考虑缓存一下
注意:受indexdb本身的限制,如果你确定要使用它,那么请保证系统的C盘有足够的空间去存储它,否则会出现模型缓存失败的情况哦
现在你可以在网络请求中看看,第一次从网络中下载模型后,下一次渲染将直接从indexdb中获取模型,这一过程直接省略的模型从网络中请求的用时,该节省时间效果在服务器带宽越小,模型越大的情况下越为明显
Constructor Option
complete: () => void, version: number = 1
complete
构建完毕回调函数
version
版本号
typescript
new RTHREE.ModelIndexdb(() => {});
new RTHREE.ModelIndexdb(() => {}, 10);
static Methods
clear
清空数据库
save(modelName: string, blobUrl: string, config?: Record<string, any>)
存储模型
modelName
模型名称
blobUrl
模型路径地址
config
一些其它需要记录的数据
get(modelName: string, success: (result: any) => void)
获取模型
modelName
模型名称
success
回调函数
remove(modelName: string)
移除模型
modelName
模型名称