bcobra,
Christophes post inspred me to try Web Storage and I've used it many times since. Not with spservices per-se, but I've used it to store a list of items after looking them up from an SP list using web services. Web storage has two types, localStorage & sessionStorage. I think in most cases sessionStorage is what you'll use since localStorage persists beyond the life of the current browser session. In other words, if you save & retrive the contents of your form in localStorage, the form will fill in with those values every time which is not desirable. sessionStorage works great in modern browsers! Saves a lot of round trips to the web services.
Often when dealing with list items we have an array of items returned and the handy JSON.stringify and JSON.parse methods convert the array to and from a string respectively for sessionStorage. Here is a snip of code I use for populating autocomplete boxes in sharepoint. It's specific to my requirements, but basically it trys to set the listItems array from sessionStorage then if the array is still empty (cuz sessionStorage doesn't caontain the items yet) it queryies the list and then saves the results in sessionStorage. This prevents the list from being queried every refreshh for the same browser session which was required in this case since I was filtering a list view and every filter-apply is a page refresh.
var listItems = [];
var ctl = $("#" + targetWPID).find('input[readOnly]');//
if((ctl!=null)&&(ctl.attr('aria-haspopup')!=true)){
try { listItems = JSON.parse(sessionStorage.getItem(storageName));}
catch(e) {listItems =[]; alert("Error " + e);}
if(listItems!=null){
//alert('localStorage: ' + listItems.length);
}
else{
listItems =[];
wsBaseUrl = listBaseUrl + '/_vti_bin/';
listName = config[0].split('/');
listName = listName[2];
sourceFIN = config[2]
var query = "<Where><IsNotNull><FieldRef ID='"+sourceFIN+"' /></IsNotNull></Where>";
var res = queryItems(listName,query,[sourceFIN]);
// Build array of unique values - might be slow if list contains large amounts of data
$.each(res.items,function(i,item){
var currVal = item[sourceFIN];
if($.inArray(currVal,listItems)==-1){
listItems.push(currVal);
try { sessionStorage.setItem(storageName,JSON.stringify(listItems));}
catch(e) {alert("Error " + e);}
}
});
HTH,
Josh