2009-11-26 19 views
5

Necesito poder ejecutar formularios HTML fuera de línea. Quiero decir que tienen que trabajar sin conexión directa al servidor web.Formularios HTML que funcionan sin conexión

En una aplicación que escribí hace más de 5 años lo hice implementando un controlador de protocolo personalizado: cuando un usuario iniciaba un formulario, la solicitud HTTP resultante se grababa localmente. En un momento posterior, cuando está disponible una conexión con el servidor, un programa de sincronización recorre las solicitudes recopiladas y las envía al servidor para recopilar las respuestas y volver a guardarlas localmente para usarlas más adelante.

Eso fue entonces. Ahora otro cliente se me acercó con una solicitud muy similar. ¿Qué tecnología piensan que debería usar hoy?

El soporte para HTML5 es muy limitado por el momento. Engranajes de Google? ¿O debería volver y seguir usando el controlador de protocolo y el sincronizador personalizado?

+0

Una pregunta aclaratoria: ¿Esto es para una aplicación de usuario masivo o solo interno? ¿Sabes cuáles son los requisitos del navegador para tus usuarios? Si es interno y usted tiene cierto control, incluso podría considerar hacer una simple aplicación de AIR. Adobe AIR utiliza Google Gears para el almacenamiento 'sin conexión', y las próximas versiones de AIR harán aún más. – Joshua

+0

Es una aplicación interna. Las personas con computadoras portátiles suministradas por la empresa se conectan a la aplicación y reciben formularios para completar y cerrar en el campo para recopilar información rellenando los formularios – mfeingold

Respuesta

4

Yo diría que vaya para HTML5. No todos los navegadores lo admiten; pero todos lo harán. Mientras tanto, creo que es mejor decir "para obtener características fuera de línea probar tal o tal navegador", en lugar de "descarga este enorme plugin con muchas advertencias de miedo".

También una demografía simple: HTML5 es en qué, 5% de todos los navegadores? 10%? todavía mucho más que el 0% de usuarios con Gears ya instalado.

Es una verdadera lástima, muchas gracias a Google por empujar el sobre con Gears; pero en la naturaleza, el único complemento generalmente aceptado es Flash. Afortunadamente, HTML5 ya casi está allí, con casi las mismas características.

+0

+1 para proponer una buena solución a largo plazo – tosh

2

Google Gears es un muy buen candidato; por ejemplo, Google acaba de anunciar que los usuarios podrán adjuntar archivos a los correos electrónicos mientras estén "fuera de línea". Otro método podría ser almacenar los datos del formulario publicado en una cookie, y cuando el usuario puede volver a conectarse, el servidor recoge la cookie y los datos con ella.

+0

. Una cookie no lo cortará. Los formularios pueden tener una cantidad bastante importante de datos, docenas de campos. No me gustaría usar cookies para él – mfeingold

+0

Entiendo. Sin embargo, tenga en cuenta que las cookies pueden almacenar literalmente megabytes de datos, dependiendo del navegador. Incluso docenas de campos no deberían ser un problema. El único problema será con los datos de archivo reales (es decir, carga de PDF). – Joshua

1

Dojo.Storage/ Dojo Offline, tiene un puente flash que le permitirá almacenar datos utilizando el almacén de datos de flash. El límite es establecido por el usuario, pero comienza en 5Mb. El componente de la biblioteca es una abstracción, y también es compatible con HTML 5, cookies y engranajes.

Más marchas le permitirá almacenar blobs binarios, si la memoria le sirve.

2

Corren rumores de que Google Gears ya no se encuentra en desarrollo. Cuando mira las características de los engranajes y el rastreador de problemas al http://code.google.com/p/gears/issues/list?can=2&q=&sort=version&colspec=Version%20Milestone%20Owner%20ID%20Summary%20Component para el nuevo desarrollo de Gears, solo hay 3 elementos que se repararán en la versión 0.6. Además, de acuerdo con este artículo de Wikipedia (http://en.wikipedia.org/wiki/Google_Gears), parece que Google no está haciendo ningún desarrollo, y el proyecto de código abierto tampoco tiene mucho valor. Tomado del artículo es este:

"A finales de noviembre de 2009, numerosas fuentes de noticias en línea informaron que Google va a migrar para usar HTML 5 en lugar de Gears en el futuro. Más tarde, un vocero de Google aclaró que Google continuará apoyar a Gears para que no rompa los sitios que lo usan ".

En otras palabras, Gears ha quedado obsoleto. Use HTML 5 en su lugar.

1

Google Gears es muerto: http://gearsblog.blogspot.com/2011/03/stopping-gears.html

Su mejor apuesta es probablemente una combinación de los estándares HTML5 para applicationCache y localStorage.

Sin embargo, la aplicaciónCache se debe usar con moderación, es un verdadero dolor.En este artículo se explica por qué, así como dar algunos consejos sobre cómo utilizar un enfoque híbrido de applicationCache y localStorage para verlas sin conexión (no presentación) de páginas:

http://www.alistapart.com/articles/application-cache-is-a-douchebag/

Aquí está un artículo que tiene un ejemplo de la captura de datos del formulario en localStorage, pero por desgracia, no proporciona un ejemplo de que la haya presentado los datos fuera de línea:

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

Además, tenga cuidado de window.navigator.onLine para detectar el estado fuera de línea - no se aplica consistentemente a través de hermano wsers, y probablemente sea mejor que el usuario le diga explícitamente si están desconectados o no.

- Chad

Cuestiones relacionadas