Skip to content

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 模型名称