DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
    • Data Modeling
      • can-connect
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
        • methods
          • can-zone-storage.getItem
          • can-zone-storage.getStore
          • can-zone-storage.removeItem
          • can-zone-storage.setItem
        • properties
          • data
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

can-zone-storage

  • npm package badge
  • Star
  • Edit on GitHub

Implement Zone-safe memory-based storage

define(prototype, propDefinitions)

Implement a Zone-safe memory-based storage solution. This is especially useful for Server Side Rendering (SSR).

var zoneStorage = require("can-zone-storage");

var value = 'Store me';

zoneStorage.setItem('key-name', value);

zoneStorage.getItem('key-name') === 'Store me' // --> true

zoneStorage.removeItem('key-name');

Use

can-zone-storage provides a Zone-safe method of storing data for a user.

It implements three of the methods from the WebStorage Interface:

  • setItem stores keyed data.
  • getItem retrieves keyed data.
  • removeItem deletes keyed data.

One additional method, getStore, allows you to retrieve the current data store and inspect it directly.

Zone Safe

Done-SSR, the Server Side Rendering solution built into DoneJS, uses Zones to increase performance. Other web servers will completely rebuild the app for every incoming request. Done-SSR uses Zones to keep the app running in memory and share it between all incoming connections.

Sharing modules between connections is often fine, but some data should not be shared. Private data belonging to one user should not reach another user on the same server. Can-Zone provides each incoming request with a CanZone.current object that is not shared. The can-zone-storage module detects if CanZone is in the global namespace. If it is found, it uses the CanZone.current.data object as the data store. If CanZone is not found, an internal memory store is used.

CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.14.1.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news