Sobes.tech
Junior

Čo je detekcia funkcií prehliadača (feature detection)?

sobes.tech AI

Odpoveď od AI

Detekcia funkcií prehliadača (feature detection) je programová metóda, ktorá umožňuje overiť, či aktuálny prehliadač podporuje určitú funkčnosť (API). Namiesto hádania alebo kontroly verzie prehliadača sa tento prístup zakladá na priamej skúške prítomnosti vlastností alebo metód.

Výhody:

  • Maximálna kompatibilita: Kód funguje iba tam, kde je požadovaná funkcia podporovaná.
  • Odolnosť voči zmenám: Nezávisí od verzií prehliadačov, ktoré sa môžu meniť.
  • Spoľahlivejší prístup: Využitie možností, nie predpokladov.

Príklad:

Kontrola podpory localStorage:

if (typeof(Storage) !== "undefined") {
  // localStorage je podporovaný
  localStorage.setItem("myKey", "myValue");
} else {
  // localStorage nie je podporovaný
  // Navrhnúť alternatívu alebo upozorniť používateľa
}

Kontrola podpory canvas:

var canvas = document.createElement('canvas');
if (canvas.getContext) {
  // canvas je podporovaný
  var ctx = canvas.getContext('2d');
  // kreslenie na canvas
} else {
  // canvas nie je podporovaný
}

Rozdiely od Browser Sniffing:

Browser Sniffing je založený na analýze reťazca navigator.userAgent na určenie prehliadača a jeho verzie. Tento spôsob nie je spoľahlivý, pretože reťazec User Agent môže byť falšovaný, menený alebo obsahovať neúplné informácie. Detekcia funkcií sa zameriava na schopnosti, nie na identifikáciu prehliadača.