2016-03-22 67 views
0

有沒有用於角2的自定義緩存控制的任何工具?本地存儲?Angular 2自定義緩存/本地存儲

穿過文檔,沒有找到任何引用。

作爲一個臨時的解決方案可能會使用jQuery,但比使用角度有什麼意義?

Regards

+0

你考慮過瀏覽器的'localStorage'嗎? –

+0

我有,但以前在角1,提供了工具,但我沒有找到任何類似的東西在版本2 – nelly2k

+1

如果您正在''angular2'中尋找'$ cacheFactory'。我也找不到它。但[這](http://stackoverflow.com/questions/19304435/local-storage-vs-angularjs-cachefactory)問題可能會有所幫助。 –

回答

0

我同意@micronyks並相信@ngrx/store是一個必須具備的包裝而開發的角度應用程序 - 狀態管理。

不過,我相信有更合適的包緩存管理:它包含了Cached方法裝飾,並使用caching API高速緩存方法(hasgetset)的@ngx-cache/core

下面的示例示出了使用的API方法:

anyclass.ts

... 
import { CacheService } from '@ngx-cache/core'; 

@Injectable() 
export class AnyClass { 
    constructor(private readonly cache: CacheService) { 
    // note that CacheService is injected into a private property of AnyClass 
    } 

    // will retrieve 'some string value' 
    getSomeStringValue(): string { 
    if (this.cache.has('some-string')) 
     return this.cache.get('some-string'); 

    this.cache.set('some-string', 'some string value'); 
    return 'some string value'; 
    } 
} 

而這個例子示出了使用方法Cached裝飾的,和CacheKey PARAMS裝飾:

anyclass.ts

... 
import { Cached, CacheKey } from '@ngx-cache/core'; 

export class AnyClass { 
    // will retrieve 'some string value' 
    @Cached('some-string') 
    getSomeStringValue(): string { 
    return 'some string value'; 
    } 

    @Cached('some-string') 
    getSomeStringValue2(@CacheKey param1: string): string { 
    return 'some string value: ' + param1; 
    } 
} 

... 
// these are the first executions 
console.log(anyClass.getSomeStringValue2('p1')); 
console.log(anyClass.getSomeStringValue2('p2')); 
... 
// will retrieve 'some string value: p1' from `CACHE` 
console.log(anyClass.getSomeStringValue2('p1')); 

// will retrieve 'some string value: p1' from `CACHE` 
console.log(anyClass.getSomeStringValue2('p2')); 

這裏是包的列表,無論是客戶端和服務器端緩存: