2010-04-18 17 views
8

Desarrollé una aplicación de búsqueda de texto completo desplegada en navegador en FlashBuilder que se comunica RESTfully con un servidor web remoto. El software encaja en un pequeño nicho: es para usar con lenguajes antiguos y no modernos, y no hay forma de que vaya a ganar dinero, pero pasé mucho tiempo en ello.Compatibilidad con navegadores cruzados de Google GWT: ¿es BS?

Ahora que Apple no permitirá Flash en el iPad, estoy buscando una solución 100% javascript y se lo llevó a considerar GWT. Se parecía prometedor, pero una de las aplicaciones que se "presentó" como un ejemplo estelar de lo que se puede hacer con GWT tiene esta exención de responsabilidad en su página web (nombres {retirado} para proteger al posiblemente inocente):

 
Your current web browser (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) 
AppleWebKit/532.5 (KHTML, like Gecko) 
Chrome/4.1.249.1045 Safari/532.5) is not officially supported by 
{company and product name were here}. If you experience any problems using this site 
please install either Microsoft Internet Explorer 6+ or Mozilla Firefox 3.5+ 
before contacting {product name was here} Support. 

Lo da cuando las aplicaciones GWT no son "oficialmente" compatibles con Chrome? ¿Qué calificación (A, B, C, D, F) le daría a GWT para obtener soporte para varios navegadores? Para las personas que no obtienen este tipo de calificaciones con letras, A es "excelente" y "F" es el fracaso, y "C" es el promedio.

Gracias por su opinión.

Respuesta

11

Todos los Widgets base de GWT son compatibles con varios navegadores - esto se ha logrado con algo llamado Deferred Binding (no siempre, pero para los mayores delincuentes;)). Básicamente, permite un "reemplazo" sin interrupciones de una clase con otra, en función del navegador que usa el cliente (este intercambio se realiza durante la compilación). Esto permite escribir un Widget para todos los navegadores compatibles con el estándar y luego proporcionar una versión especializada para que usted sepa quién (el enlace diferido también se usa para i18n y otras cosas interesantes, como dependency injection). Otra cosa interesante de Deferred Binding es que el cliente solo descarga la versión de la aplicación web específica en su navegador. Por lo tanto, un usuario de Firefox/Opera/Chrome/WebKit no tiene que descargar todos los hacks adicionales que hacen que la aplicación web funcione en IE.

Larga historia corta: GWT proporciona herramientas/medios para el desarrollador para crear una aplicación web multi-navegador (y se trata de hacer que el proceso lo más fácil posible, proporcionando Reproductores básicos que son multi-navegador fuera de la caja) - depende del desarrollador usar esas herramientas - o no;)

PD: La misma pregunta podría hacerse sobre jQuery/mootools/etc - ¿Por qué es que estos marcos afirman que funcionan en todos los navegadores y aún hay muchos sitios/aplicaciones web que los usan y no son compatibles con todos esos navegadores? Porque los desarrolladores lo eligieron. Podría no haber valido la pena paralizar la aplicación web/sitio solo para que funcione en un navegador agonizante (con suerte).

+0

Gracias por la información sobre Enlazado diferido. – Tim

+0

¿Cómo detecta GWT qué navegador es cuál? Y lo que cambio mi agente de usuario a algo personalizado. – CMCDragonkai

+0

Internamente, probablemente mire a su agente de usuario (si quiere estar seguro, consulte las fuentes). Cuando se trata de servir diferentes versiones de widgets para diferentes navegadores, usan [Enlazado diferido] (http://www.gwtproject.org/doc/latest/FAQ_Client.html#What_is_Deferred_Binding?) ([Docs] (http: // www.gwtproject.org/doc/latest/DevGuideCodingBasicsDeferred.html)) –

10

La parte de GWT de las aplicaciones funciona absolutamente bien en los navegadores Webkit (como Chrome y Safari). Si los autores de este sitio decidieron incluir la detección de navegadores y enloquecer en Webkit, no fue por GWT, aunque podría haber complementos de GWT u otros componentes que no les gusta Webkit.

Para citar las preguntas más frecuentes http://code.google.com/webtoolkit/doc/latest/FAQ_GettingStarted.html#What_browsers_does_GWT_support?

¿Qué navegadores son compatibles con GWT?

GWT soporta los siguientes navegadores:

  • Firefox 1.0, 1.5, 2.0, 3.0, y 3.5
  • Internet Explorer 6, 7, y 8
  • Safari 2, 3, y 4
  • cromo y Google Chrome
  • Opera 9,0
Cuestiones relacionadas