Zwischenspeichern von Objekten in javascript

ich habe einen poltergeist mit diesem code:

javascript-code:

var cache = {};

cache.init = function()
{   
    if(typeof(this.memory)=='undefined')
        this.memory = {};
};

cache.set = function(key, value)
{
    this.memory[key] = value;
};

cache.get = function(key)
{
    if(console)
    {
        console.log("memory: ");
        console.log(cache.memory);

        console.log("key: "+key);
        console.log(cache.memory[key]);
    }

    if(typeof(cache.memory[key])!='undefined')
        return cache.memory[key];

    return false;
};

var route = {};

route.load = function(url)
{
    var route_list = cache.get('route_list');

    if(route_list==false)
    {
        route_list = this.getList();
        cache.set('route_list', route_list);
    }

    return route_list;
};

route.getList = function()
{
    var result = false;
    $.ajax(
    {
        url: 'route.json',
        dataType: 'json',
        async: false,
        success: function(json)
        {
            result = json;
        }
    });
    return result;
};

cache.init();
route.load();
route.load();

ich würde gerne cache-Objekte auf client-Seite mit "cache" setzen und erhalten.

Inhalt der route.json-Datei:

{    
    "/example":
    {
        "controller":   "example"
    },
    "/example/show":
    {
        "controller":   "example",
        "method":   "show"
    }
}

und das Ergebnis in der firebug ist:

memory:
Object
{
route_list
    Object { /example={...}, /example/show={...}}
}
key: route_list
undefined

warum undefined? ich kann navigieren innerhalb des Objekts mit firebug o.O

EDIT: ich habe den zweiten Aufruf der route.load(); bekomme ich " undefined Schlüssel

  • Zeigen Sie uns, wie Sie verwendet firebug - ich kann nicht sehen, alle log-Anweisungen
  • console.Logbuch im cache.bekommen, hier der snapshot: i.imgur.com/VMSsp.png
InformationsquelleAutor ZiTAL | 2012-09-24
Schreibe einen Kommentar