scalable, localStorage,
UX goodies
$.jStorage.set('myThing', 'the vale of your thing');
$.jStorage.get('myThing');
allTheThings = $.jStorage.index();
searchHabits = {
'lastSearch': "funny cat videos",
'resultsClicked': 8,
'sort': 'popularity'
}
$.jStorage.set('MySearchPreferences', JSON.stringify(searchHabits));
prefs = JSON.parse($.jStorage.get('MySearchPreferences'));
// All setup for you.
{
"user.origin" : {
"url" : "http://www.mysite.com/some-great-page?param=value",
"timestamp" : "398649600",
"referrer" : "http://www.anothersite.com/their-linking-page"
},
"user.session_origin" : {
"url" : "http://www.mysite.com/recent-entry-point",
"timestamp" : "398649999"
}
}
// Just grab it.
origin = JSON.parse($.jStorage.get('user.origin'));
alert("You've been around " + (Date.now() - origin.timestamp) + " seconds.";
{
"nid" : "123",
"title" : "My Cool Page",
"entityType" : "node",
"bundle" : "article",
"uid" : "555",
"language" : "en",
"taxonomy" : {
"special_category" : {
"25" : "Term Name",
"26" : "Another Term"
},
"my_type" : {
"13" : "Some Tag",
}
}
}
if (typeof dataLayer.taxonomy.my_category !== 'undefined') {
if (dataLayer.taxonomy.my_category.hasOwnProperty('25')) {
doMyAction(dataLayer.uid, dataLayer.language, dataLayer.title);
}
}
// Events look like this.
{
"track.browsing.398649600" : {
"url" : "http://www.mysite.com/some-great-page",
"taxonomy" : {
"my_category" : {
"25" : "Term Name",
"26" : "Another Term"
},
"my_types" : {
"13" : "Some Tag"
}
}
}
}
// Grab them.
$.each(semiAnon.getActivities('browsing'), function (key, record) {
someComparison(record.url);
});
omgFavs = semiAnon.getFavoriteTerms();
{
"my_category" : {
"123" : {
"count" : 5,
"name" : "My Term"
},
"456" : {
"count" : 2,
"name" : "My Other Term"
},
},
"my_type" : {
"555" : {
"count" : 7,
"name" : "My Type"
}
}
}
if (favData.hasOwnProperty('my_vocab')) {
// Could use low-dash.
favVocabData = new Drupal.SemiAnon.Collection(favData['my_vocab']);
if(favData['my_vocab'][favVocabData.keys()[0]].count >= myThreshold) {
userValue = favData.property;
}
}