https://github.com/ded/kizzy
A Local Storage Utility
https://github.com/ded/kizzy
Last synced: about 1 year ago
JSON representation
A Local Storage Utility
- Host: GitHub
- URL: https://github.com/ded/kizzy
- Owner: ded
- Created: 2011-02-23T04:14:39.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2012-11-27T18:30:26.000Z (over 13 years ago)
- Last Synced: 2025-05-09T10:57:09.396Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 156 KB
- Stars: 195
- Watchers: 10
- Forks: 20
- Open Issues: 1
-
Metadata Files:
- Readme: README.markdown
Awesome Lists containing this project
README
# Kizzy - a Local Storage Utility
Kizzy is a light-weight, cross-browser, JavaScript local storage utility. It leverages the HTML5 localStorage API when available, as well as Internet Explorer's persistent XML store — wrapped up in a easy to use, memcached-like interface. When neither of these features are available (unlikely), it falls back to an in-browser object store.
It looks like this
``` js
var cache = kizzy('users')
var agent = cache.get('Agent')
if (agent) {
alert('Welcome back ' + agent.name)
} else {
cache.set('Agent', {
name: 'Agent Diaz'
})
}
```
Furthermore, a call to 'set' will return the value, making it quite easy for assignment.
``` js
var cache = kizzy('users')
var agent = cache.get('Agent') || cache.set('Agent', {
name: 'Agent Diaz'
})
```
Lastly, you can pass an optional third argument to 'set' that tells the cache how long to live
``` js
var cache = kizzy('users')
var agent = cache.get('Agent') || cache.set('Agent', {
name: 'Agent Diaz'
}, 5000) // time to live set for 5 seconds
// wait 3 seconds...
setTimeout(function() {
alert('Still there ' + cache.get('Agent').name)
}, 3000)
// 6 seconds later...
setTimeout(function() {
cache.get('Agent').name // => expired
}, 6000)
```
# Browser support
* Internet Explorer 6+
* Firefox 2+ (when localStorage is enabled (the browser default))
* Chrome
* Safari 4+
* Opera
# Building Kizzy
``` sh
$ submodule update --init
& make
```
# Running tests
Tests will not currently pass if run on a file:/// protocol. Otherwise...
``` sh
$ open tests/test.html
```
# Ender integration
Install Kizzy as an Ender module
``` sh
$ ender add kizzy
```
Use it as such:
``` js
$.cache('user').get('name')
```
# Kizzy whu?
The name comes from Kunta Kinte, a Mandinka African warrior from the 1700's. After being brought into slavery, he had a daughter whom he named Kizzy, which translates to *stay put* in hopes that the family would stay together, but not stay a slave.
Happy Caching!