Links: Index
an alternative for localStorage implemented on IndexDB API with a memory limit approximately 200Mb.
all values that are saved in browserSession Object are automatically serialized with JSON.stringify(...) and unserialized with JSON.parse(...)
installation in Document as a third-party library ( download module )
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document - browserSession Demo</title>
<script
src="./application-prototype/constructors/bowser-session.js"
type="text/javascript">
</script>
</head>
<body>
<script type="text/javascript">
// use browserSession Object
console.log(window.browserSession);
// ...
</script>
</body>
</html>
Application.require("browser-session").then(function (browserSessionBuilder) {
// work with browserSessionBuilder
// ...
// initialization of browserSession in a reference
var sessionReq = browserSessionBuilder();
sessionReq.then(function (session) {
// make session accessible in a application's method
Application.bind("session", function () {
return session;
});
}, function (err) {
console.error(err);
});
//... work with App.session() that returns the browserSession Object
}).catch (function (err) {
console.error(err);
});Application.require("browser-session").then(function (browserSessionBuilder) {
// work with browserSessionBuilder
// ...
// initialization of browserSession in a reference
var sessionReq = browserSessionBuilder('local-storage');
sessionReq.then(function (session) {
// make session accessible in a application's method
Application.bind("session", function () {
return session;
});
}, function (err) {
console.error(err);
});
//... work with App.session() that returns the browserSession Object
}).catch (function (err) {
console.error(err);
});methods available in browserSession Object
all methods are based on Promises,
if the browser will not support Promises the Application automatically will implement them.
the methods will work as Promises even these are unsupported
retrieve an item from browserSession Object
Example:
session.getItem('foo').then(function (value) {
console.log(value); // item's value
}).catch(function (err) {
console.error(err);
});set item's value in browserSession Object
Example:
session.setItem('foo', 'bar').then(function (value) {
console.log("Success, the new value is: ", value);
}).catch(function (err) {
console.error(err);
});retrieve multiple items from browserSession Object
Example:
session.setItem(['item1', 'item2', 'item3']).then(function (result) {
console.log("Success, the new value is: ", result);
// result: {
// item1: 'a..',
// item2: '...',
// item3: ...
// }
}).catch(function (err) {
console.error(err);
});set/update multiple items to browserSession Object
Example:
session.setItems({
'item1': 'val1',
'item2': 'val2',
'item3': 'val3'
}).then(function (result) {
console.log("Success, items were successfully inserted/updated", result);
// result: {
// item1: 'a..',
// item2: '...',
// item3: ...
// }
}).catch(function (err) {
console.error(err);
});remove an item from browserSession Object
Example:
session.removeItem('foo').then(function (value) {
console.log("Success, the item was successfully remove");
}).catch(function (err) {
console.error(err);
});remove multiple items from browserSession Object
Example:
session.removeItems(['foo', 'ogoo', 'doo']).then(function (value) {
console.log("Success, the items were successfully removed");
}).catch(function (err) {
console.error(err);
});find items in store by filtering them
Example:
session.findItems(function (itemKey, itemValue) {
if (key.match(/foo/)) {
return true;
} else {
return false;
}
}).then(function (result) {
console.log("Success, items were successfully retrieved", result);
// result: {
// item1: 'a..',
// item2: '...',
// item3: ...
// }
}).catch(function (err) {
console.error(err);
});Example (finding all items from browserSession Object):
session.findItems().then(function (result) {
console.log("Success, items were successfully retrieved", result);
// result: {
// item1: 'a..',
// item2: '...',
// item3: ...
// ...
// }
}).catch(function (err) {
console.error(err);
});other methods inherited from ApplicationPrototype
remove all items from store
Example:
session.clear().then(function (result) {
console.log("Success, items were successfully removed", result);
// result: {
// item1: 'a..',
// item2: '...',
// item3: ...
// }
}).catch(function (err) {
console.error(err);
});session.on('setItem::foo', function (itemKey, itemValue) {
// listener content
});session.on('removeItem::foo', function (itemKey) {
// listener content
});