Usar Delphi + Intraweb para criar aplicativo offline HTML5 (manifesto de cache) com armazenamento de navegador (webSQL / IndexedDB) possível?

StackOverflow https://stackoverflow.com/questions/8830097

Pergunta

Meu aplicativo Intraweb atual é na verdade um DataSnap Client que se conecta ao meu DataSnap Server que se conecta e fica junto com um Interbase Server na mesma máquina. Ele funciona corretamente, mas é bastante lento e requer conexão constante com a Internet para funcionar. Cada botão clicado ou qualquer evento acionado exigirá que o navegador se conecte ao servidor da Web (Intraweb).

Estou pensando em criar um aplicativo da web offline usando Intraweb no Delphi XE2, recurso de cache manifest HTML5 e usar o armazenamento SQL baseado em navegador (como webSQL ou IndexedDB) como armazenamento de navegador local quando o dispositivo móvel ficar offline. Ele só se conectará ao servidor DataSnap real quando a conexão com a Internet estiver disponível para fazer a inicialização ou sincronização de volta ao servidor DataSnap.

Isso é possível?

Meu principal problema é obter o url das páginas da web do aplicativo da web intraweb e não quero colocar todo o código de armazenamento do navegador nos arquivos de modelo.

Também é muito tedioso mover o código JavaScript gerado pelo Intraweb para outros arquivos js e, ao fazer isso, posso quebrar os códigos e a lógica do aplicativo Intraweb. Existe alguma solução alternativa para isso?

Foi útil?

Solução

Como você mesmo declarou: "Cada botão clicado ou qualquer evento disparado exigirá que o navegador se conecte ao servidor da Web".

Este é o design do IntraWeb: um aplicativo Cliente-Servidor, no qual a maior parte da lógica do código é executada no lado do servidor. Você pode adicionar alguns widgets AJAX aos seus aplicativos, mas o IntraWeb, por si só, é uma estrutura do lado do servidor.

Para ter um aplicativo HTML5 AJAX Client completo capaz de ser executado de forma autônoma, você precisará de um aplicativo JavaScript puro. Mesmo estruturas AJAX baseadas em Sacha / ExtJS (como ExtPascal ou UniGUI ) ou Morfik requerem um servidor para funcionar.

Mas criar um aplicativo JavaScript HTML5 puro é uma tarefa difícil - mas é possível, uma vez que você pode consumir conteúdo DataSnap de JavaScript (usando XML ou JSON). Você pode tentar http://www.appcelerator.com/ que é um ótimo IDE e plataforma para a criação de aplicativos JavaScript , que são executados como aplicativos nativos.

Para ter um aplicativo HTML5 desconectado, pode ser necessário aguardar o lançamento dos seguintes produtos:

Graças a esses dois projetos, você seria capaz de codificar no objeto pascal, então o JavaScript será compilado a partir da fonte pascal e, em seguida, usará o armazenamento local HTML. Veja, por exemplo, este artigo sobre como usar armazenamento com Smart / OP4JS - Eu testei (em Alpha) e funciona muito bem: você tem um arquivo HTML puramente autônomo que pode ser executado sem nenhum servidor e tem armazenamento local. O armazenamento SQLite3 está planejado (ainda não concluído).

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