javascriptjqueryajaxcachingrich-internet-application

How to avoid too many ajax calls and cache json data on the client side


I have a calendar application and it loads all of the event data using ajax and json results. the issue is that i have different view and right now i have to re call the server when i change views.

Is there any recommendation for ways i can cache this data on the client side and check if i have loaded these events already before firing off more ajax calls.

What is the best practice for this ?


Solution

  • It's called MVC.

    You need to construct a data model for you application, write some sort of Record objects, and then you can determine their status. So your application would have some sort of CalendarEvent model, and when you load data from the server, you would instantiate instances.

    So when changing views, you would first check to see if you had the model object for that view, and if you did, you wouldn't need to load it from the server (unless you want to check for changes).

    Your scheme doesn't need to be that complicated. If you load events by Id, you can do something like

    window.App = {};
    window.App.Models = {};
    

    when you load a record you could put

    window.App.Models[id] = InstanceOfYourRecord

    and that way its pretty fast to look for records. Or just use a framework (like Sproutcore) that has a robust data layer.