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
});