Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
jStorage is a cross-browser key-value store database to store data locally in the browser - jStorage supports all major browsers, both in desktop (yes - even Internet Explorer 6) and in mobile.
If you don't need to support older Internet Explorer Versions (IE7 and below), use simpleStorage instead.
jStorage is a cross-browser key-value store database to store data locally in the browser - jStorage supports all major browsers, both in desktop (yes - even Internet Explorer 6) and in mobile.
Additionally jStorage is library agnostic, it works well with any other JavaScript library on the same webpage, be it jQuery, Prototype, MooTools or something else. Though you still need to have either a third party library (Prototype, MooTools) or JSON2 on the page to support older IE versions.
jStorage supports storing Strings, Numbers, JavaScript objects, Arrays and even native XML nodes which kind of makes it a JSON storage. jStorage also supports setting TTL values for auto expiring stored keys and - best of all - notifying other tabs/windows when a key has been changed, which makes jStorage also a local PubSub platform for web applications.
jStorage is pretty small, about 7kB when minified, 3kB gzipped.
$.jStorage.set(key, value, options)
Saves a value to local storage. key needs to be string otherwise an exception is thrown. value can be any JSONeable value, including objects and arrays or a XML node.
Currently XML nodes can't be nested inside other objects: $.jStorage.set("xml", xml_node)
is OK but $.jStorage.set("xml", {xml: xml_node})
is not.
Options is an optional options object. Currently only available option is options.TTL which can be used to set the TTL value to the key $.jStorage.set(key, value, {TTL: 1000})
. NB - if no TTL option value has been set, any currently used TTL value for the key will be removed.
value = $.jStorage.get(key)
value = $.jStorage.get(key, "default value")
get retrieves the value if key exists, or default if it doesn't. key needs to be string otherwise an exception is thrown. default can be any value.
$.jStorage.deleteKey(key)
Removes a key from the storage. key needs to be string otherwise an exception is thrown.
$.jStorage.set("mykey", "keyvalue");
$.jStorage.setTTL("mykey", 3000); // expires in 3 seconds
Sets a TTL (in milliseconds) for an existing key. Use 0 or negative value to clear TTL.
ttl = $.jStorage.getTTL("mykey"); // TTL in milliseconds or 0
Gets remaining TTL (in milliseconds) for a key or 0 if not TTL has been set.
$.jStorage.flush()
Clears the cache.
$.jStorage.index()
Returns all the keys currently in use as an array.
var index = $.jStorage.index();
console.log(index); // ["key1","key2","key3"]
$.jStorage.storageSize()
Returns the size of the stored data in bytes
$.jStorage.currentBackend()
Returns the storage engine currently in use or false if none
$.jStorage.reInit()
Reloads the data from browser storage
$.jStorage.storageAvailable()
Returns true if storage is available
$.jStorage.subscribe("ch1", function(channel, payload){
console.log(payload+ " from " + channel);
});
Subscribes to a Publish/Subscribe channel (see demo)
$.jStorage.publish("ch1", "data");
Publishes payload to a Publish/Subscribe channel (see demo)
$.jStorage.listenKeyChange("mykey", function(key, action){
console.log(key + " has been " + action);
});
Listens for updates for selected key. NB! even updates made in other windows/tabs are reflected, so this feature can also be used for some kind of publish/subscribe service.
If you want to listen for any key change, use "*"
as the key name
$.jStorage.listenKeyChange("*", function(key, action){
console.log(key + " has been " + action);
});
$.jStorage.stopListening("mykey"); // cancel all listeners for "mykey" change
Stops listening for key change. If callback is set, only the used callback will be cleared, otherwise all listeners will be dropped.
Support jStorage development
jStorage supports the following features:
Current availability: jStorage supports all major browsers - Internet Explorer 6+, Firefox 2+, Safari 4+, Chrome 4+, Opera 10.50+
If the browser doesn't support data caching, then no exceptions are raised - jStorage can still be used by the script but nothing is actually stored.
See tests/index.html for unit tests
Project homepage and docs: www.jstorage.info
Unlicense Since version 0.4.7
MIT (versions up to 0.4.6)
FAQs
jStorage is a cross-browser key-value store database to store data locally in the browser - jStorage supports all major browsers, both in desktop (yes - even Internet Explorer 6) and in mobile.
The npm package jstorage receives a total of 2,071 weekly downloads. As such, jstorage popularity was classified as popular.
We found that jstorage demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.