-
Title:
Status de rede
-
Description:
-
Na verdade, este é um ponto
realmente importante.
-
O navegador não é capaz de dizer
com certeza se está online.
-
Tampouco se está offline
-
a não ser que realmente não tenha
qualquer conexão com outro aparelho.
-
Na verdade, existe um atributo,
navigator.onLine
-
que supostamente diz
se você está online ou não.
-
Há também dois eventos que
ativam o corpo do documento
-
quando você fica online ou offline.
-
Porém, não recomendo confiar neles,
eles apenas dizem
-
se existe ou não uma conexão de rede.
-
Não dizem se a conexão de rede
está realmente conectada a alguma coisa.
-
Por exemplo, meu computador em casa
às vezes se engana
-
pois meu modem a cabo fica inativo,
mas meu computador
-
ainda está conectado ao roteador.
Às vezes, computadores ou aplicativos
-
enviam pings a vários servidores
para dizer a eles
-
se existe uma conexão com a internet.
Mas o fundamental, como programador, é que
-
o único status offline
que importa para você é
-
se você consegue alcançar
seus próprios servidores
-
e claro, no caso de sinal celular
de rádio, pode ser ainda mais complicado.
-
Todos já vivemos a experiência
de ter apenas uma barra
-
de sinal ao tentar usar a rede.
-
De fato, esse é um ponto crítico
em relação ao uso offline
-
e o porque de dizermos que é preciso
primeiro programar offline.
-
Você pode pensar que
o jeito de se apoiar quando offline
-
é usar primeiro a rede e então,
se ela falhar, recorrer ao cache
-
mas isso não funciona no mundo real.
-
Justamente porque pode levar um bom tempo
-
para conferir se você não tem realmente
uma conexão com a internet.
-
Se você só oferece os dados
do cache depois que a solicitação
-
de rede falhar definitivamente,
você acaba deixando
-
os usuários esperando, enquanto
seus aparelhos tentam desesperadamente
-
mas não conseguem realmente
transferir dados pela rede.
-
Isso é o que queremos dizer
com 'primeiro offline', não que você
-
deva programar primeiro offline,
mas para ressaltar
-
que seu aplicativo tem que ser
capaz de usar os dados do cache primeiro.
-
E depois atualizar o conteúdo
do cache quando estiver online
-
mas continuar a usar os dados antigos
do cache quando estiver offline.