mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-18 07:50:52 +08:00
docs($cacheFactory): document cache instance methods
These were apparently entirely undocumented. I'm not sure if they're intended to be private, but in case they're not, I've written some initial docs for them
This commit is contained in:
committed by
Brian Ford
parent
562334f5f1
commit
ae342b5ce7
@@ -5,7 +5,8 @@
|
||||
* @name $cacheFactory
|
||||
*
|
||||
* @description
|
||||
* Factory that constructs cache objects and gives access to them.
|
||||
* Factory that constructs {@link $cacheFactory.Cache Cache} objects and gives access to
|
||||
* them.
|
||||
*
|
||||
* ```js
|
||||
*
|
||||
@@ -96,8 +97,65 @@ function $CacheFactoryProvider() {
|
||||
freshEnd = null,
|
||||
staleEnd = null;
|
||||
|
||||
/**
|
||||
* @ngdoc type
|
||||
* @name $cacheFactory.Cache
|
||||
*
|
||||
* @description
|
||||
* A cache object used to store and retrieve data, primarily used by
|
||||
* {@link $http $http} and the {@link ng.directive:script script} directive to cache
|
||||
* templates and other data.
|
||||
*
|
||||
* ```js
|
||||
* angular.module('superCache')
|
||||
* .factory('superCache', ['$cacheFactory', function($cacheFactory) {
|
||||
* return $cacheFactory('super-cache');
|
||||
* }]);
|
||||
* ```
|
||||
*
|
||||
* Example test:
|
||||
*
|
||||
* ```js
|
||||
* it('should behave like a cache', inject(function(superCache) {
|
||||
* superCache.put('key', 'value');
|
||||
* superCache.put('another key', 'another value');
|
||||
*
|
||||
* expect(superCache.info()).toEqual({
|
||||
* id: 'super-cache',
|
||||
* size: 2
|
||||
* });
|
||||
*
|
||||
* superCache.remove('another key');
|
||||
* expect(superCache.get('another key')).toBeUndefined();
|
||||
*
|
||||
* superCache.removeAll();
|
||||
* expect(superCache.info()).toEqual({
|
||||
* id: 'super-cache',
|
||||
* size: 0
|
||||
* });
|
||||
* }));
|
||||
* ```
|
||||
*/
|
||||
return caches[cacheId] = {
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $cacheFactory.Cache#put
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* Inserts a named entry into the {@link $cacheFactory.Cache Cache} object to be
|
||||
* retrieved later, and incrementing the size of the cache if the key was not already
|
||||
* present in the cache. If behaving like an LRU cache, it will also remove stale
|
||||
* entries from the set.
|
||||
*
|
||||
* It will not insert undefined values into the cache.
|
||||
*
|
||||
* @param {string} key the key under which the cached data is stored.
|
||||
* @param {*} value the value to store alongside the key. If it is undefined, the key
|
||||
* will not be stored.
|
||||
* @returns {*} the value stored.
|
||||
*/
|
||||
put: function(key, value) {
|
||||
if (capacity < Number.MAX_VALUE) {
|
||||
var lruEntry = lruHash[key] || (lruHash[key] = {key: key});
|
||||
@@ -116,7 +174,17 @@ function $CacheFactoryProvider() {
|
||||
return value;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $cacheFactory.Cache#get
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* Retrieves named data stored in the {@link $cacheFactory.Cache Cache} object.
|
||||
*
|
||||
* @param {string} key the key of the data to be retrieved
|
||||
* @returns {*} the value stored.
|
||||
*/
|
||||
get: function(key) {
|
||||
if (capacity < Number.MAX_VALUE) {
|
||||
var lruEntry = lruHash[key];
|
||||
@@ -130,6 +198,16 @@ function $CacheFactoryProvider() {
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $cacheFactory.Cache#remove
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* Removes an entry from the {@link $cacheFactory.Cache Cache} object.
|
||||
*
|
||||
* @param {string} key the key of the entry to be removed
|
||||
*/
|
||||
remove: function(key) {
|
||||
if (capacity < Number.MAX_VALUE) {
|
||||
var lruEntry = lruHash[key];
|
||||
@@ -148,6 +226,14 @@ function $CacheFactoryProvider() {
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $cacheFactory.Cache#removeAll
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* Clears the cache object of any entries.
|
||||
*/
|
||||
removeAll: function() {
|
||||
data = {};
|
||||
size = 0;
|
||||
@@ -156,6 +242,15 @@ function $CacheFactoryProvider() {
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $cacheFactory.Cache#destroy
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* Destroys the {@link $cacheFactory.Cache Cache} object entirely,
|
||||
* removing it from the {@link $cacheFactory $cacheFactory} set.
|
||||
*/
|
||||
destroy: function() {
|
||||
data = null;
|
||||
stats = null;
|
||||
@@ -164,6 +259,22 @@ function $CacheFactoryProvider() {
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $cacheFactory.Cache#info
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* Retrieve information regarding a particular {@link $cacheFactory.Cache Cache}.
|
||||
*
|
||||
* @returns {object} an object with the following properties:
|
||||
* <ul>
|
||||
* <li>**id**: the id of the cache instance</li>
|
||||
* <li>**size**: the number of entries kept in the cache instance</li>
|
||||
* <li>**...**: any additional properties from the options object when creating the
|
||||
* cache.</li>
|
||||
* </ul>
|
||||
*/
|
||||
info: function() {
|
||||
return extend({}, stats, {size: size});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user