Skip to content

Latest commit

 

History

History
269 lines (211 loc) · 5.42 KB

browser-session.md

File metadata and controls

269 lines (211 loc) · 5.42 KB

Browser-Session

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>

installation inside of an application

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

installation inside of an application and store session in localStorage

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

browserSession Object


Methods

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


getItem

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

setItem

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

getItems

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

setItems

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

removeItem

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

removeItems

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

findItems

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

clear

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

Events

setItem::{item-name}

session.on('setItem::foo', function (itemKey, itemValue) {
  // listener content
});

removeItem::{item-name}

session.on('removeItem::foo', function (itemKey) {
  // listener content
});