Зависит от того, на какие типы браузеров вы ориентируетесь.Это для автономных веб-приложений HTML5?
Если они поддерживают ononline
и onoffline
события , вы можете реализовать это самостоятельно довольно тривиально.
Некоторый потенциально работоспособный код, использующий автономные события, собственное локальное хранилище JSON и HTML5:
if(!localStorage.getItem("offlineGA")){
localStorage.setItem("offlineGA","[]");
}
var _ogaq = {
push : function(arr){
if(navigator.onLine || !("onLine" in navigator)){ // if online or if browser doesn't support onLine/offLine detection.
_gaq.push(arr);
}
else{
var stored = JSON.parse(localStorage.getItem("offlineGA"));
stored.push(arr);
localStorage.setItem("offlineGA", JSON.stringify(stored));
}
}
};
$(window).bind("online", function(){ // if you don't have jQuery, you can do window.ononline instead
_gaq.push( JSON.parse(localStorage.getItem("offlineGA")) );
localStorage.setItem("offlineGA","[]"); //empty it
});
Тогда вы просто используете _ogaq
в качестве оболочки для _gaq
.
т.е.:
_ogaq.push(["_trackEvent","Category", "Action"]);