Maja
Miarecki
Senior Frontend
Developer
Temat: Jak najlepiej zablokowac wykonanie kodu na stronie
W zaleznosci od wielu rzeczy kod JS ma sie wykonywac na stronie lub nie. Dodam, ze ten kod laduje reklame, wiec jest BARDZO wazne, zeby sie w konkretnych sytuacjach nie wykonal. Jego wykonanie jest determinowane przez szerokosc okna przegladarki.W zaleznosci od szerokosci okna laduje rozne zestawy css. Dla malych okien (urzadzenia mobilne) css ma klase abc, ktora powoduje ze kontener z ta klasa sie nie wyswietla (display: none;) kontenery z reklama maja te klase. W swoim kodzie JS sprawdzam czy display jest rozne od none i wtedy wykonuje kod.
Na desktopowych przegladarkach gra i buczy, ale na mobilnych nie. Strona laduje sie z poprawnym layoutem i bez reklam, jednak po zaladowaniu ulega ponownemu zrenderowaniu (bez przeladowania) juz z uzyciem css przeznaczonych dla wiekszych ekranow i ma zaladowane reklamy... Najczesciej sie to dzieje od razu po zaladowaniu, czasami po jakiejs akcji usera na stronie a czasami w ogole.
Kod funkcji i warunek jakiego uzywam:
function getStyle(el,styleProp)
{
var x = document.getElementById(el);
if (x.currentStyle)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
return y;
}
if (getStyle(idKontenera,'display') !== 'none') {
// tutaj kod reklamy
}