Do not generate worker events when not visible

This commit is contained in:
Tadej Novak
2014-08-03 13:33:39 +02:00
parent c7468000de
commit 6fb3e503c9
2 changed files with 40 additions and 0 deletions
+6
View File
@@ -13,6 +13,8 @@ var detector =
list: [],
},
visible: true,
width: 400,
height: 400,
@@ -268,6 +270,10 @@ var detector =
addEventExternal: function()
{
if (!detector.visible) {
return;
}
var num = Math.min(30 * achievements.count.workers / 10, 30);
for (var i = 0; i < num; i++) {
+34
View File
@@ -7,3 +7,37 @@ $(function() {
$('.scrollable').height(h + 'px');
});
});
(function() {
var hidden = "hidden";
// Standards:
if (hidden in document)
document.addEventListener("visibilitychange", onchange);
else if ((hidden = "mozHidden") in document)
document.addEventListener("mozvisibilitychange", onchange);
else if ((hidden = "webkitHidden") in document)
document.addEventListener("webkitvisibilitychange", onchange);
else if ((hidden = "msHidden") in document)
document.addEventListener("msvisibilitychange", onchange);
// IE 9 and lower:
else if ('onfocusin' in document)
document.onfocusin = document.onfocusout = onchange;
// All others:
else
window.onpageshow = window.onpagehide
= window.onfocus = window.onblur = onchange;
function onchange (evt) {
var v = 'visible', h = 'hidden',
evtMap = {
focus:v, focusin:v, pageshow:v, blur:h, focusout:h, pagehide:h
};
evt = evt || window.event;
if (evt.type in evtMap)
detector.visible = evtMap[evt.type] == 'visible';
else
detector.visible = !this[hidden];
}
})();