Quiz

Qual é a diferença entre detecção de recurso, inferência de recurso e uso da string UA?

Topics
BrowserJavaScript

Detecção de Recursos

A detecção de recursos envolve descobrir se um navegador suporta um determinado bloco de código e executar códigos diferentes dependendo se ele suporta (ou não), para que o navegador possa sempre fornecer uma experiência funcional em vez de travar/gerar erros em alguns navegadores. Por exemplo:

if ('geolocation' in navigator) {
// Pode usar navigator.geolocation
} else {
// Manipula a falta de recurso
}

Modernizr é uma ótima biblioteca para lidar com a detecção de recursos.

Inferência de Recursos

A inferência de recursos verifica a existência de um recurso assim como a detecção de recursos, mas usa outra função porque presume que ela também existirá, por exemplo:

if (document.getElementsByTagName) {
element = document.getElementById(id);
}

Isso não é muito recomendado. A detecção de recursos é mais à prova de falhas.

UA String

Esta é uma string relatada pelo navegador que permite aos pares do protocolo de rede identificar o tipo de aplicativo, sistema operacional, fornecedor de software ou versão do software do agente de usuário solicitante. Ele pode ser acessado via navigator.userAgent. No entanto, a string é difícil de analisar e pode ser falsificada. Por exemplo, o Chrome informa como Chrome e Safari. Então, para detectar o Safari, você precisa verificar a presença da string do Safari e a ausência da string do Chrome. Evite este método.

Exercícios

Verifique seu entendimento
Beta
Verifique seu entendimento Exercício
Verifique seu entendimento Exercício

Code should use navigator.geolocation when available and provide an address field otherwise. Which branching strategy tests the required capability directly?