commit
804049b36b
|
@ -4,6 +4,7 @@
|
||||||
- 修复懒加载在多次点击出现卡死的问题
|
- 修复懒加载在多次点击出现卡死的问题
|
||||||
- 支持多种组合变换
|
- 支持多种组合变换
|
||||||
- 提供清理缓存能力
|
- 提供清理缓存能力
|
||||||
|
- 修复preLoad接口失效
|
||||||
|
|
||||||
## 2.2.0-rc.2
|
## 2.2.0-rc.2
|
||||||
- ImageKnife支持下采样
|
- ImageKnife支持下采样
|
||||||
|
|
|
@ -302,9 +302,58 @@ export class ImageKnife {
|
||||||
preload(request: RequestOption): void {
|
preload(request: RequestOption): void {
|
||||||
// 每个request 公共信息补充
|
// 每个request 公共信息补充
|
||||||
request.setFilesPath(this.filesPath);
|
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> {
|
async pauseRequests(): Promise<void> {
|
||||||
await this.mutex.lock(async () => {
|
await this.mutex.lock(async () => {
|
||||||
|
|
Loading…
Reference in New Issue