Pergunta

Eu preciso ser capaz de executar formulários HTML offline. Quero dizer que eles têm que trabalhar sem conexão direta com o servidor web.

Em um aplicativo que eu escrevi mais de 5 anos atrás eu fiz isso através da implementação de um manipulador de protocolo personalizado - quando um formulário iniciado usuário envie a solicitação HTTP resultante foi gravado localmente. Na hora mais tarde, quando uma conexão com o servidor se torna disponível um programa de sincronização laços através de pedidos e submete-coletadas para o servidor recolhe as respostas e novamente salva-los localmente para uso posterior.

Isso era então. Agora outro cliente se aproximou de mim com um pedido muito semelhante. Que tecnologia que vocês acham que eu deveria usar hoje?

O suporte para HTML5 é muito pouco ainda limitado. engrenagens do Google? Ou devo voltar e continuar usando o manipulador de protocolo e personalizado sincronizador?

Foi útil?

Solução

Eu diria que ir para HTML5. Nem todos os navegadores suportam-lo; mas tudo vai. Nesse meio tempo, eu acho que é melhor dizer "para obter recursos off-line tentar tal ou tal navegador", em vez de "por favor descarregue esta enorme plugin com lotes de avisos assustadores".

Também um simples demografia: HTML5 está no que, 5% de todos os navegadores? 10%? ainda muito mais do que a 0% dos usuários com as engrenagens já instalados.

É uma pena real, muito obrigado Google para empurrar o envelope com Engrenagens; mas na natureza o único plugin geralmente aceite é o Flash. Felizmente, HTML5 é quase lá já, com quase as mesmas características.

Outras dicas

O Google Gears é um candidato muito bom - como um exemplo, o Google recentemente anunciou apenas que os usuários seriam capazes de anexar arquivos a e-mails enquanto 'offline'. Outro método poderia ser a de armazenar os dados de formulário postado em um cookie, e quando o usuário é capaz de voltar on-line as escolhas de servidores até o cookie e dados com ele.

Os rumores estão correndo por aí que o Google Gears não está em desenvolvimento. Quando você olha para as engrenagens características e issue tracker em http://code.google.com/p/gears/issues/list?can=2&q=&sort=version&colspec=Version%20Milestone%20Owner%20ID%20Summary%20Component para o novo desenvolvimento Gears, existem apenas 3 itens que serão corrigidos na versão 0.6. Além disso, de acordo com este artigo da Wikipedia ( http://en.wikipedia.org/wiki/Google_Gears), parece que o Google não está fazendo qualquer desenvolvimento, eo projeto de código aberto não tem uma grande quantidade de vapor também. Retirado do artigo é o seguinte:

"No final de novembro de 2009, inúmeras fontes de notícias online informou que o Google vai migrar para usar HTML 5 ao invés de engrenagens no futuro. Um porta-voz do Google mais tarde esclareceu que o Google vai no entanto continuar a Engrenagens de apoio para não quebrar sites de usá-lo . "

Em outras palavras, Gears foi preterido. Use HTML 5 em vez.

Dojo.Storage/ Dojo offline , tem uma ponte flash que lhe permitirá armazenar dados usando armazenamento de dados flash. O limite é definido usuário, mas começa a 5Mb. O componente de biblioteca é uma abstração, e também suporta HTML 5, cookies, e engrenagens.

Mais de gears lhe permitirá armazenar blobs binários, se a memória.

Google Gears está morto: http://gearsblog.blogspot.com/2011 /03/stopping-gears.html

Sua melhor aposta é provavelmente uma combinação dos padrões HTML5 para ApplicationCache e localStorage.

No entanto, ApplicationCache deve ser usado com moderação - é uma dor real. Este artigo explica por que, bem como dar algumas dicas sobre como usar uma abordagem híbrida de ApplicationCache e localStorage para visualização offline (não submissão) de páginas:

http://www.alistapart.com/articles/application -cache-é-a-Douchebag /

Aqui está um artigo que tem um exemplo de captura de dados do formulário em localStorage, mas infelizmente ele não fornece um exemplo de que realmente apresenta os dados offline:

http: //miniapps.co.uk/blog/post/using-html5-localstorage-as-a-fallback-for-offline-form-submission

Além disso, cuidado com window.navigator.onLine para detectar status off-line -. Não é implementado de forma consistente em todos os navegadores, e você é provavelmente melhor fora de ter o usuário lhe dizer explicitamente se eles estão offline ou não

- Chad

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top