mirror of
https://gitee.com/openharmony-tpc/ImageKnife.git
synced 2026-05-24 17:25:44 +08:00
@@ -302,9 +302,58 @@ export class ImageKnife {
|
||||
preload(request: RequestOption): void {
|
||||
// 每个request 公共信息补充
|
||||
request.setFilesPath(this.filesPath);
|
||||
return this.parseSource(request);
|
||||
return this.loadResources(request);
|
||||
}
|
||||
loadResources(request: RequestOption) {
|
||||
let factories: EngineKeyInterface;
|
||||
let cacheKey: string;
|
||||
let transferKey: string;
|
||||
let dataKey: string;
|
||||
if (this.engineKeyImpl) {
|
||||
factories = this.engineKeyImpl;
|
||||
} else {
|
||||
factories = new EngineKeyFactories();
|
||||
}
|
||||
// 生成内存缓存key 内存 变换后磁盘
|
||||
|
||||
let loadKey = '';
|
||||
if (typeof request.loadSrc == 'string') {
|
||||
loadKey = request.loadSrc;
|
||||
} else {
|
||||
loadKey = JSON.stringify(request.loadSrc);
|
||||
}
|
||||
|
||||
let size = JSON.stringify(request.size);
|
||||
|
||||
let transformed = '';
|
||||
if (request && request.transformations) {
|
||||
for (let i = 0; i < request.transformations.length; i++) {
|
||||
if (i == request.transformations.length - 1) {
|
||||
transformed += request.transformations[i].getName() + "";
|
||||
} else {
|
||||
transformed += request.transformations[i].getName() + ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let dontAnimateFlag = request.dontAnimateFlag;
|
||||
|
||||
let signature = request.signature;
|
||||
|
||||
cacheKey = factories.generateMemoryCacheKey(loadKey,size,transformed,dontAnimateFlag,signature);
|
||||
|
||||
// 生成磁盘缓存变换后数据key 变换后数据保存在磁盘
|
||||
transferKey = factories.generateTransformedDiskCacheKey(loadKey,size,transformed,dontAnimateFlag,signature);
|
||||
|
||||
// 生成磁盘缓存源数据key 原始数据保存在磁盘
|
||||
dataKey = factories.generateOriginalDiskCacheKey(loadKey,signature);
|
||||
|
||||
request.generateCacheKey = cacheKey;
|
||||
request.generateResourceKey = transferKey;
|
||||
request.generateDataKey = dataKey;
|
||||
|
||||
this.loadCacheManager(request);
|
||||
}
|
||||
// 暂停所有请求
|
||||
async pauseRequests(): Promise<void> {
|
||||
await this.mutex.lock(async () => {
|
||||
|
||||
Reference in New Issue
Block a user