Pregunta

Con el mayor poder de los marcos de JavaScript como YUI, JQuery y Prototype, y las herramientas de depuración como Firebug, hacer una aplicación completamente en JavaScript del lado del navegador parece una excelente manera de crear aplicaciones simples como juegos de rompecabezas y calculadoras especializadas.

¿Hay alguna desventaja en esto además de exponer su código fuente?¿Cómo se debe manejar el almacenamiento de datos para este tipo de programa?

Editar:Sí, Gears y cookies se pueden usar para almacenamiento local, pero no se puede acceder fácilmente a archivos y otros objetos que el usuario ya tiene a mano.Tampoco puede guardar datos en un archivo para un usuario sin que invoque alguna función del navegador, como imprimir en PDF o guardar la página como un archivo.

¿Fue útil?

Solución

He escrito varias aplicaciones en JS, incluida una hoja de cálculo.

Ventaja:

  • gran idioma
  • ciclo corto de ejecución de código y revisión
  • La manipulación de DOM es excelente para el diseño de UI
  • Clientes en cada computadora (y teléfono).

Abajo:

  • diferencias entre navegadores (especialmente IE)
  • escalabilidad de la base del código (sin soporte intrínseco para espacios de nombres y clases)
  • no hay buenos depuradores (especialmente, nuevamente, para IE)
  • rendimiento (aunque se han logrado grandes avances con Firefox y Safari)
  • También necesitas escribir algún código de servidor.

Línea de fondo:A por ello.Hice.

Otros consejos

Otra opción para desarrollar aplicaciones o juegos de escritorio simples en JavaScript es Adobe AIR.Puede crear el código de su aplicación en HTML + JavaScript o usando Flash/Flex o una combinación de ambos.Tiene la ventaja de ser multiplataforma (en realidad, multiplataforma, Linux, OS X y Windows).No sólo Windows y OS X).

Diablos, puede que sea la única vez en tu carrera como desarrollador que puedas escribir una página web y apuntar SÓLO a UN navegador.

SproutCore es un marco de aplicación totalmente alojado en JavaScript, que toma prestados conceptos particularmente de Cocoa (como KVO) y Ruby on Rails (como el uso de un generador CLI para sus modelos, vistas y controladores).Incluye Prototype, pero además incluye muchas cosas, como controles sofisticados.Es Fotos La demostración es posiblemente impresionante (especialmente en Safari 3.1).

Greg ya te señaló Gears;Además, HTML 5 vendrá con un medio estandarizado de almacenamiento local.Safari 3.1 viene con una implementación en la que tiene una base de datos SQLite por sitio con tamaños máximos configurables por el usuario, así como un navegador de base de datos incorporado con consultas SQL.Desafortunadamente, pasará mucho tiempo hasta que podamos esperar una amplia compatibilidad con los navegadores.Hasta entonces, Gears es de hecho una alternativa (pero no para Safari...¡todavía!).Para un almacenamiento más sencillo, por supuesto, siempre existen las cookies.

La desventaja de esto sería que estás a merced de que tengan js habilitado.No estoy seguro de que esto sea gran cosa ahora.Prácticamente todos los navegadores admiten js y lo tienen habilitado de forma predeterminada.

Por supuesto, el otro inconveniente sería el rendimiento.Usted está nuevamente a merced del cliente que se encarga de todo el trabajo intensivo.Es posible que esto tampoco sea un gran problema y dependerá del tipo de aplicación que esté creando.

Nunca he usado Gears, pero parece que vale la pena intentarlo.El plan de respaldo sería ejecutar algún script del lado del servidor a través de ajax que descargue sus datos en algún lugar.

No completamente del lado del cliente, pero bueno.

Nihilógico (no es mi sitio) hace muchas cosas con Javascript.Incluso tienen varios juegos que han hecho en Javascript.

También he visto un fantástico juego roguelike creado en Javascript.Desgraciadamente no recuerdo cómo se llamaba...

Si desea escribir una aplicación JavaScript independiente, consulte XULcorredor.Es en lo que se basa Firefox, pero también está diseñado para que puedas distribuirlo como un tiempo de ejecución de aplicación.Escribirá parte de la interfaz en JavaScript y utilizará JavaScript para su código.

Engranajes podría proporcionar el almacenamiento de datos persistente del lado del cliente que necesita.Sin embargo, no existe una manera muy buena de no exponer su código fuente.Podrías ofuscarlo, pero eso sólo ayuda un poco.

He creado aplicaciones simples como esta para cosas como solucionador de sudokus.

Podrías encontrarte con problemas de rendimiento dado que estás completamente a merced del intérprete de Javascript del cliente.Gears sería una buena forma de almacenar datos, pero no creo que haya penetrado tanto en el mercado.Podrías usar cookies si no eres quisquilloso con ese tipo de cosas.

Estoy con ScottKoon aquí, Adobe AIR es genial.Hasta ahora solo he creado un widget realmente bonito (en mi humilde opinión), pero lo hice usando jQuery y Prototype.js, que funcionaron de manera tan maravillosa porque no tuve que aprender un modelo de evento completamente nuevo.Adobe AIR es realmente bueno, la huella de memoria no es tan mala, la actualización a una nueva versión está integrada en AIR, por lo que es casi automática y, lo mejor de todo, es multiplataforma... incluso tienen una versión alfa para Linux. , pero ya funciona bastante bien en mi Eee.

Juegos independientes en GWT:

  1. http://gpokr.com/
  2. http://kdice.com/

Con respecto a guardar archivos desde una aplicación javascript:

Estoy realmente entusiasmado con las posibilidades de las aplicaciones del lado del cliente.Flash 10 introdujo la capacidad de crear archivos para guardarlos directamente en el navegador.Pensé que era genial, así que construí un componente javascript+flash para incluir la función de guardar.En este momento solo funciona para crear archivos basados ​​en texto (vcard, ical, xml, html, css, etc.)

  1. Descargar página de inicio
  2. Código fuente y documentación en Github
  3. Véalo en uso en Starter para jQuery

Estoy buscando agregar pronto soporte para archivos que no sean de texto, pero esto es un comienzo.

Mis feeds RSS me han resultado muy útiles: ¡descubrí ese Javascript roguelike!

Se llama Las tumbas de Asciiroth.

Dado que de todos modos vas a escribir algún código de servidor, tiene sentido mantener almacenamiento en el servidor para muchos dominios (libretas de direcciones, puntuaciones de póquer, configuración de interfaz gráfica de usuario, etc.). Para cualquier cosa del tamaño de lo que deseas. Lo obtendrás en Webkit o Gears, probablemente también puedas guardarlo en tu servidor.

La ventaja de mantenerlo en su servidor es doble:

  1. Puede integrarlo de manera bastante simple como una capa de modelo en un marco MVC típico y,
  2. Los usuarios obtienen una vista consistente sin estar atados a su navegador/PC, o en un entorno menos que ideal (Cibercafés).

El código del servidor para manejar esto también puede ser bastante trivial, particularmente si está escrito con esta tarea en mente, por lo que no supone una gran carga cognitiva.

Ve con qooxdoo.Recientemente lanzaron la versión 1.0, aunque la mayoría de los usuarios dicen que estaba lista para la versión 1.0 hace al menos dos versiones.

Comparé qooxdoo con YUI y ext, y creo que qooxdoo es el camino a seguir para los programadores: YUI no es tan pulido como qooxdoo, desde el punto de vista de un programador, y ext tiene un modelo de licencia no tan amigable.

Algunos de los puntos fuertes (para mí) de qooxdoo son:

  • código extremadamente limpio
  • el mejor modelo de programación OO que he visto entre los marcos de Javascript
  • una biblioteca de widgets de interfaz de usuario extremadamente rica

También cuenta con un ejecutor de pruebas para pruebas unitarias, un generador y lector de documentos API, una función de registro y varias funciones útiles para la depuración, agrupadas en algo llamado Inspector.

El único inconveniente es que no hay temas ya preparados (algo así como máscaras) para qooxdoo.Pero crear tu propio tema es bastante fácil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top