Este projeto não é mantido ativamente.
Observação para usuários anteriores à versão 0.6.0: o modo off-line usava anteriormente um arquivo hospedado no Cloudfront como um de seus métodos de detecção do status da conexão. Este método agora está obsoleto e a imagem foi removida. Atualize para Off-line 0.7.0+.
Melhore a experiência do seu aplicativo quando os usuários perderem a conexão.
Monitora solicitações ajax em busca de falhas
Confirma o status da conexão solicitando uma imagem ou recurso falso
Captura automaticamente solicitações ajax feitas enquanto a conexão está inativa e as refaz após a conexão ser restaurada.
UI simples com belos temas
3kb minificado e compactado
Inclua o javascript, um dos temas e uma das linguagens do seu site. Você terminou!
Para usar apenas a API JavaScript sem um indicador de UI, simplesmente omita o arquivo CSS.
Se quiser dar uma olhada na aparência do seu site, desconecte a internet ou experimente o simulador.
Opcionalmente, você pode fornecer alguma configuração definindo Offline.options
após trazer o script.
Opções (qualquer uma pode ser fornecida como função), com seus padrões:
{ // Devemos verificar o status da conexão imediatamente no carregamento da página. checkOnLoad: false, // Devemos monitorar solicitações AJAX para ajudar a decidir se temos uma conexão. interceptRequests: true, // Devemos testar novamente automaticamente periodicamente quando a conexão cair (definir como falso para desabilitar). reconectar: { // Quantos segundos devemos esperar antes de verificar novamente. inicialDelay: 3, // Quanto tempo devemos esperar entre as novas tentativas. delay: (1,5 * último atraso, limitado a 1 hora) }, // Devemos armazenar e tentar refazer solicitações que falham enquanto a conexão está inoperante. requests: true, // Devemos mostrar um jogo de cobra enquanto a conexão estiver desligada para manter o usuário entretido? // Não está incluído na compilação normal, você deve trazer js/snake.js além de // offline.min.js. jogo: falso}
Offline.check()
: verifica o status atual da conexão.
Offline.state
: o estado atual da conexão 'ativa' ou 'inativa'
Offline.on(event, handler, context)
: Vincula um evento. Eventos:
up: A conexão passou de baixo para cima
down: A conexão passou de cima para baixo
confirmado: Um teste de conexão foi bem-sucedido, acionado mesmo que a conexão já estivesse ativa
confirmado inativo: um teste de conexão falhou, acionado mesmo que a conexão já estivesse inativa
verificando: estamos testando a conexão
reconnect:started: Estamos iniciando o processo de reconexão
reconnect:stopped: Terminamos de tentar reconectar
reconnect:tick: Disparado a cada segundo durante uma tentativa de reconexão, quando uma verificação não está acontecendo
reconnect:connecting: Estamos nos reconectando agora
reconnect:failure: Uma tentativa de verificação de reconexão falhou
requests:flush: Todas as solicitações pendentes foram refeitas
requests:capture: Uma nova solicitação está sendo retida
Offline.off(event, handler)
: Desvincula um evento
Por padrão, o Offline faz uma solicitação XHR para carregar seu /favicon.ico
para verificar a conexão. Se você não tiver esse arquivo, ele será 404 no console, mas por outro lado funcionará bem (mesmo um 404 significa que a conexão está ativa). Você pode alterar o URL acessado (um endpoint que responderá com um rápido 204 é perfeito):
Offline.options = {verificações: {xhr: {url: '/connection-test'}}};
Certifique-se de que o URL verificado tenha a mesma origem da sua página (o método de conexão, domínio e porta devem ser iguais), ou você terá problemas de CORS. Você pode adicionar cabeçalhos Access-Control
ao endpoint para corrigi-lo em navegadores modernos, mas isso ainda causará problemas no IE9 e versões anteriores.
Se você quiser executar testes em um domínio diferente, tente o método de imagem. Ele carrega uma imagem, que pode cruzar domínios.
Offline.options = {verifica: {image: {url: 'my-image.gif'}, ativo: 'image'}}
A única ressalva é que, com o método de imagem, não podemos distinguir um 404 de um problema de conexão genuíno; portanto, qualquer erro aparecerá no Offline como um problema de conexão.
Offline também inclui uma verificação chamada 'up'
e outra chamada 'down'
que sempre reportará estar ativo ou inativo respectivamente para teste. Você pode ativá-los definindo a opção active
, adicionando um atributo data à sua tag de script com o nome data-simulate
e valor 'up'
ou 'down'
, ou definindo localStorage.OFFLINE_SIMULATE
como 'up'
ou 'down'
.
O módulo de reconexão testa automaticamente novamente a conexão periodicamente quando ela está inoperante. Uma solicitação AJAX bem-sucedida também acionará uma nova verificação silenciosa (se interceptRequests
não for falso).
Você pode desabilitar o módulo de reconexão definindo a reconnect
como falsa. A reconexão pode ser configurada definindo opções na configuração de reconexão.
O módulo de solicitações retém todas as solicitações AJAX com falha e, após desduplicá-las, as refaz quando a conexão é restaurada.
Você pode desativá-lo definindo a configuração requests
como falsa.
Você também pode definir deDupBody como verdadeiro se desejar que a desduplicação também leve em consideração o conteúdo da solicitação.
Nenhum!
Chrome, Firefox, Safari e IE8+ modernos
Observe que nem todos os navegadores (incluindo Safari e o antigo IE) suportam eventos offline, forçando o Offline a usar métodos de detecção menos precisos.