angular-cache-service

The service provides ability to cache client data


Keywords
angular, angularjs, angular cache, cache, cookie, indexeddb, service, storage, websql
License
GPL-2.0+
Install
npm install angular-cache-service@0.0.8

Documentation

The cache service handles client-side caching (almost about any object can be cached on the client). The cache mechanism implemented by this service uses either { indexedDB | webSQL | localStorage | sessionStorage | polyFill } in the specified order of availability.

To ensure better performance, when used in pagination, only pages navigated by users shoube be cached. For example: in a page 1 to 10 result; if user navigate page 1, 3 and 7; only the mentioned three pages (1, 3 & 7) should be cached....however it's still up to you to determine what's cached.

Supported Browsers:

browsers

Table of Contents

Installation and Usage

Install from repo npm install angular-cache-service --save-dev

Add as dependency and use

angular.module('myApp', ['angular-cache-service'])
  .controller('myCtrl', [ 'cacheService' ], function (cacheService) {
    // create cache
    cacheServiceInstance = cacheService.create(); // use cacheService.getNewInstance() for prototype cache
    
    // initialize cache
    cacheServiceInstance.init({
        // name of cacheDB.
        dbName : "myDB",
        // name of cacheTable.
        entityName : "myEntity",
        // cache current page for next 30min
        maxAge : 60000,
        // INDEXED_DB | WEB_SQL | LOCAL_STORAGE | SESSION_STORAGE | POLY_FILL
        cacheType : cacheServiceInstance.cacheType.POLY_FILL,
        // delete the first 5 cached items when storage full .
        deletableCacheItems : 5
    });
    
    var uid = (new Date()).valueOf().toString();
    
    cacheServiceInstance.save(uid, uid).then(function(savedStatus) {
       console.log("savedStatus: " + savedStatus);
    });
    
    cacheServiceInstance.get(uid).then(function(result) {
       console.log("result: " + result);
    });
    cacheServiceInstance.length().then(function(size) {
       console.log("size: " + size);
    });
    
    cacheServiceInstance.remove(uid).then(function() {
       console.log("removed: " + uid);
    });
    
    cacheServiceInstance.clear().then(function() {
       console.log("cleared " + cacheServiceInstance.getStorage().dbName + ' .....');
    });
  });

API

// supported cache mechanism
cacheType

// storage handle
getStorage()

// storage availability
storeQuotaExceeded

// check storage availability and usability
storageExist

// cache service initialization
init(initData)

// persist cached data
save(key, value

// remove cached data
remove(key)

// retrieve cached data
get(key)

// compute size of cached storage
length()

// clear cache storage
clear()