Domanda

Con la maggiore potenza dei framework JavaScript come YUI, JQuery e Prototype e strumenti di debug come Firebug, realizzare un'applicazione interamente in JavaScript lato browser sembra un ottimo modo per creare applicazioni semplici come giochi puzzle e calcolatrici specializzate.

C'è qualche svantaggio in questo oltre all'esposizione del codice sorgente?Come dovresti gestire l'archiviazione dei dati per questo tipo di programma?

Modificare:sì, Gears e cookie possono essere utilizzati per l'archiviazione locale, ma non è possibile accedere facilmente a file e altri oggetti che l'utente ha già in giro.Inoltre, non è possibile salvare i dati in un file per un utente senza che questi richiami alcune funzionalità del browser come la stampa su PDF o il salvataggio della pagina come file.

È stato utile?

Soluzione

Ho scritto diverse applicazioni in JS incluso un foglio di calcolo.

Lato positivo:

  • grande lingua
  • breve ciclo di esecuzione-revisione del codice
  • La manipolazione del DOM è ottima per la progettazione dell'interfaccia utente
  • client su ogni computer (e telefono)

Svantaggio:

  • differenze tra i browser (in particolare IE)
  • scalabilità della base del codice (senza supporto intrinseco per spazi dei nomi e classi)
  • nessun buon debugger (specialmente, ancora una volta, per IE)
  • prestazioni (anche se sono stati fatti grandi progressi con FireFox e Safari)
  • È necessario scrivere anche del codice server.

Linea di fondo:Fallo.L'ho fatto.

Altri suggerimenti

Un'altra opzione per sviluppare semplici applicazioni desktop come o giochi in JavaScript è Adobe AIR.Puoi creare il codice della tua app in HTML + JavaScript oppure utilizzando Flash/Flex o una combinazione di entrambi.Ha il vantaggio di essere multipiattaforma (in realtà multipiattaforma, Linux, OS X e Windows.Non solo Windows e OS X).

Diamine, potrebbe essere l'unica volta nella tua carriera di sviluppatore in cui puoi scrivere una pagina web e scegliere come target SOLO UN browser.

SproutCore è un framework applicativo interamente ospitato in JavaScript, che prende in prestito concetti in particolare da Cocoa (come KVO) e Ruby on Rails (come l'utilizzo di un generatore CLI per modelli, visualizzazioni e controller).Include Prototype, ma oltre a ciò crea molte cose come controlli sofisticati.Suo Fotografie la demo è senza dubbio impressionante (specialmente in Safari 3.1).

Greg ti ha già indicato Gears;inoltre, HTML 5 verrà fornito con mezzi standardizzati di archiviazione locale.Safari 3.1 viene fornito con un'implementazione in cui hai un database SQLite per sito con dimensioni massime impostabili dall'utente, nonché un browser di database integrato con query SQL.Sfortunatamente, ci vorrà molto tempo prima che possiamo aspettarci un ampio supporto per i browser.Fino ad allora, Gears rappresenta effettivamente un'alternativa (ma non per Safari...Ancora!).Per una memorizzazione più semplice ci sono ovviamente sempre i cookie.

Lo svantaggio di questo sarebbe che sei in balia del fatto che abbiano js abilitato.Non sono sicuro che questo sia un grosso problema adesso.Praticamente ogni browser supporta js e lo ha abilitato per impostazione predefinita.

Ovviamente l'altro svantaggio sarebbero le prestazioni.Sei di nuovo alla mercé del cliente che gestisce tutto il lavoro intenso.Anche questo potrebbe non essere un grosso problema e dipenderebbe dal tipo di app che stai creando.

Non ho mai usato Gears, ma sembra che valga la pena provarci.Il piano di backup sarebbe quello di eseguire alcuni script lato server tramite Ajax che scaricano i tuoi dati da qualche parte.

Non completamente lato client, ma vabbè.

Nihilogico (non il mio sito) fa molte cose con Javascript.Ne hanno anche diversi Giochi che hanno realizzato in Javascript.

Ho anche visto un bel gioco roguelike realizzato in Javascript.Purtroppo non ricordo come si chiamava...

Se vuoi scrivere un'applicazione JavaScript autonoma, guarda XULrunner.È ciò su cui è basato Firefox, ma è anche progettato in modo da poterlo distribuire come runtime di un'applicazione.Scriverai parte dell'interfaccia in JavaScript e utilizzerai JavaScript per il tuo codice.

Ingranaggi potrebbe fornire l'archiviazione persistente dei dati lato client di cui hai bisogno.Tuttavia, non esiste un modo particolarmente efficace per non esporre il codice sorgente.Potresti offuscarlo, ma questo aiuta solo in qualche modo.

Ho realizzato app semplici come questa per cose come a Risolutore di sudoku.

Potresti riscontrare problemi di prestazioni dato che sei completamente in balia dell'interprete Javascript del client.Gears sarebbe un bel modo di archiviare i dati, ma non penso che sia penetrato così tanto nel mercato.Potresti semplicemente usare i cookie se non sei pignolo su questo genere di cose.

Sono qui con ScottKoon, Adobe AIR è fantastico.Finora ho realizzato solo un widget davvero carino (immagino), ma l'ho fatto utilizzando jQuery e Prototype.js, che hanno dato risultati meravigliosi perché non ho dovuto imparare un modello di eventi completamente nuovo.Adobe AIR è davvero eccezionale, l'impronta di memoria non è poi così male, l'aggiornamento a una nuova versione è integrato in AIR quindi è quasi automatico e, soprattutto, è multipiattaforma... hanno anche una versione alpha per Linux , ma funziona già abbastanza bene sul mio Eee.

Giochi indipendenti in GWT:

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

Per quanto riguarda il salvataggio di file da un'applicazione JavaScript:

Sono davvero entusiasta delle possibilità delle applicazioni lato client.Flash 10 ha introdotto la possibilità di creare file da salvare direttamente nel browser.Ho pensato che fosse fantastico, quindi ho creato un componente javascript+flash per includere la funzionalità di salvataggio.Al momento funziona solo per creare file basati su testo (vcard, ical, xml, html, css, ecc.)

  1. Scarica la home page
  2. Codice sorgente e documentazione su Github
  3. Guardalo in uso su Starter per jQuery

Sto cercando di aggiungere presto il supporto per i file non di testo, ma questo è un inizio.

I miei feed RSS mi sono stati utili: ho scoperto che Javascript roguelike!

È chiamato Le Tombe di Asciiroth.

Dato che comunque scriverai del codice server, ha senso mantenere l'archiviazione sul server per molti domini (rubriche, punteggi di poker, configurazione GUI, ecc.) Per qualsiasi cosa delle dimensioni di quello che desideri entrerai in Webkit o Gears, probabilmente puoi anche tenerlo sul tuo server.

Il vantaggio di mantenerlo sul tuo server è duplice:

  1. Puoi integrarlo in modo abbastanza semplice come livello del modello in un tipico framework MVC e,
  2. Gli utenti ottengono una visualizzazione coerente senza essere vincolati al proprio browser/PC o in un ambiente non ideale (Internet Café).

Anche il codice del server per gestire questo problema può essere abbastanza banale, soprattutto se è scritto pensando a questo compito, quindi non rappresenta un enorme carico cognitivo.

Vai con qooxdoo.Recentemente hanno realizzato la versione 1.0, anche se la maggior parte degli utenti afferma che era matura per la versione 1.0 almeno due versioni fa.

Ho confrontato qooxdoo con YUI ed ext, e penso che qooxdoo sia la strada da percorrere per i programmatori: YUI non è così raffinato come qooxdoo, dal punto di vista di un programmatore ed ext ha un modello di licenza non così amichevole.

Alcuni dei punti forti (per me) di qooxdoo sono:

  • codice estremamente pulito
  • il modello di programmazione OO più carino che abbia mai visto tra i framework Javascript
  • una libreria di widget dell'interfaccia utente estremamente ricca

Dispone inoltre di un test runner per test unitari, un generatore e un lettore di documenti API, una funzione di registrazione e diverse funzionalità utili per il debug, raggruppate sotto qualcosa chiamato Inspector.

L'unico lato negativo è che non esistono temi già pronti (qualcosa come le skin) per qooxdoo.Ma creare il tuo tema è abbastanza semplice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top