LocalStorage: Check if localStorage is available

LocalStorage: Check if localStorage is available

by Nirvanachain

JavaScript

//Check if localStorage is available.  The space for localStorage may be full.
function checkAvailable(){
    var test = 'test';
    try {
        localStorage.setItem(test, test);
        localStorage.removeItem(test);
        return true;
    } catch(e) {
        return false;
    }
};

//render from localStorage.
function renderFromStorage () {
    console.log( JSON.parse( localStorage.getItem( 'myGithub') ) );
    render( JSON.parse( localStorage.getItem( 'myGithub' ) ) );
};

//ajax request for data.  Set localStorage to 'myGithub' if localStorage is available.
function jax () {
    $.ajax({
        url : 'https://api.github.com/users/matthewdordal',
        dataType : 'json',
        success : function (data) {
            if ( localStorage ) {
                //Store data in localStorage
                localStorage.setItem( 'myGithub', JSON.stringify(data) );  
                //Set TimeStamp in localStorage
                var d = new Date();
                var today = d.getTime();
                var additionalTime = 1 * 10 * 1000
                var expireCacheAtThisTime = new Date(today + additionalTime);
                localStorage.setItem( 'timeStamp', expireCacheAtThisTime );
            }
            console.log(data);
            render(data);
        }
    });
};

//Render method for printing the results to the <body> element.
//Returns html from the ajax call or from localStorage.
function render (myObjx) {
    var results = '';
    
    for (var prop in myObjx) {
        results += '<p>data.' + prop + ' = ' + myObjx[prop] + '</p>';  
    }
    
    var printData = $('body').html(results);
    return printData;
};



function init () {
    
    //If localStorage is available, and if the item 'myGithub' exists, and if space for 
    //localStorage is available.
    if ( localStorage && localStorage.getItem('myGithub')  && checkAvailable() === true) {
        console.log('if statement - myGithub IS in localStorage')
        renderFromStorage();...