Skip to content

Instantly share code, notes, and snippets.

@nuxlli
Created November 2, 2011 15:28

Revisions

  1. nuxlli revised this gist Nov 2, 2011. 1 changed file with 46 additions and 44 deletions.
    90 changes: 46 additions & 44 deletions localstorage.js
    Original file line number Diff line number Diff line change
    @@ -1,51 +1,53 @@
    /**
    * Fallback to localStorage
    **/
    if (typeof localStorage == "undefined" && typeof FileSystem == "function") {
    var fileSyObj = new FileSystem();
    var fileName = curWidget.id + "_localStorage.db";
    var lStorage = {};
    var changed = false;

    // load or init localStorage file
    var fileObj = fileSyObj.openCommonFile(fileName, "r+");
    if (fileObj != null) {
    try {
    lStorage = JSON.parse(fileObj.readAll());
    } catch(e) { }
    } else {
    fileObj = fileSyObj.openCommonFile(fileName, "w")
    fileObj.writeAll("{}");
    }
    fileSyObj.closeCommonFile(fileObj);

    // Save storage
    lStorage.saveFile = function(delay) {
    if (changed && typeof JSON == 'object') {
    var $self = this;
    var save = function() {
    fileObj = fileSyObj.openCommonFile(fileName, "w")
    fileObj.writeAll(JSON.stringify($self));
    fileSyObj.closeCommonFile(fileObj);
    changed = false;
    ;(function() {
    if (typeof localStorage == "undefined" && typeof FileSystem == "function") {
    var fileSyObj = new FileSystem();
    var fileName = curWidget.id + "_localStorage.db";
    var lStorage = {};
    var changed = false;

    // load or init localStorage file
    var fileObj = fileSyObj.openCommonFile(fileName, "r+");
    if (fileObj != null) {
    try {
    lStorage = JSON.parse(fileObj.readAll());
    } catch(e) { }
    } else {
    fileObj = fileSyObj.openCommonFile(fileName, "w")
    fileObj.writeAll("{}");
    }
    fileSyObj.closeCommonFile(fileObj);

    // Save storage
    lStorage.saveFile = function(delay) {
    if (changed && typeof JSON == 'object') {
    var $self = this;
    var save = function() {
    fileObj = fileSyObj.openCommonFile(fileName, "w")
    fileObj.writeAll(JSON.stringify($self));
    fileSyObj.closeCommonFile(fileObj);
    changed = false;
    }
    if (typeof delay != 'undefined' && delay)
    setTimeout(save, 100);
    else
    save();
    }
    if (typeof delay != 'undefined' && delay)
    setTimeout(save, 100);
    else
    save();
    }
    }

    lStorage.setItem = function(key, value) {
    changed = true;
    this[key] = value;
    this.saveFile(true);
    return this[key];
    }

    lStorage.getItem = function(key) {
    return this[key];
    lStorage.setItem = function(key, value) {
    changed = true;
    this[key] = value;
    this.saveFile(true);
    return this[key];
    }

    lStorage.getItem = function(key) {
    return this[key];
    }

    window.localStorage = lStorage;
    }

    window.localStorage = lStorage;
    }
    })();
  2. nuxlli created this gist Nov 2, 2011.
    51 changes: 51 additions & 0 deletions localstorage.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,51 @@
    /**
    * Fallback to localStorage
    **/
    if (typeof localStorage == "undefined" && typeof FileSystem == "function") {
    var fileSyObj = new FileSystem();
    var fileName = curWidget.id + "_localStorage.db";
    var lStorage = {};
    var changed = false;

    // load or init localStorage file
    var fileObj = fileSyObj.openCommonFile(fileName, "r+");
    if (fileObj != null) {
    try {
    lStorage = JSON.parse(fileObj.readAll());
    } catch(e) { }
    } else {
    fileObj = fileSyObj.openCommonFile(fileName, "w")
    fileObj.writeAll("{}");
    }
    fileSyObj.closeCommonFile(fileObj);

    // Save storage
    lStorage.saveFile = function(delay) {
    if (changed && typeof JSON == 'object') {
    var $self = this;
    var save = function() {
    fileObj = fileSyObj.openCommonFile(fileName, "w")
    fileObj.writeAll(JSON.stringify($self));
    fileSyObj.closeCommonFile(fileObj);
    changed = false;
    }
    if (typeof delay != 'undefined' && delay)
    setTimeout(save, 100);
    else
    save();
    }
    }

    lStorage.setItem = function(key, value) {
    changed = true;
    this[key] = value;
    this.saveFile(true);
    return this[key];
    }

    lStorage.getItem = function(key) {
    return this[key];
    }

    window.localStorage = lStorage;
    }