Question

Avec la puissance accrue des frameworks JavaScript comme YUI, JQuery et Prototype, et des outils de débogage comme Firebug, créer une application entièrement en JavaScript côté navigateur semble être un excellent moyen de créer des applications simples comme des jeux de réflexion et des calculatrices spécialisées.

Y a-t-il un inconvénient autre que l’exposition de votre code source ?Comment gérer le stockage des données pour ce type de programme ?

Modifier:oui, Gears et les cookies peuvent être utilisés pour le stockage local, mais vous ne pouvez pas facilement accéder aux fichiers et autres objets dont l'utilisateur dispose déjà.Vous ne pouvez pas non plus enregistrer les données dans un fichier pour un utilisateur sans lui demander d'invoquer une fonctionnalité du navigateur telle que l'impression au format PDF ou l'enregistrement d'une page en tant que fichier.

Était-ce utile?

La solution

J'ai écrit plusieurs applications en JS, dont une feuille de calcul.

Avantages :

  • super langue
  • cycle court d'exécution et de révision du code
  • La manipulation DOM est idéale pour la conception de l'interface utilisateur
  • clients sur chaque ordinateur (et téléphone)

Inconvénient:

  • différences entre les navigateurs (surtout IE)
  • évolutivité de la base de code (sans prise en charge intrinsèque des espaces de noms et des classes)
  • pas de bons débogueurs (surtout, encore une fois, pour IE)
  • performances (même si de gros progrès ont été réalisés avec FireFox et Safari)
  • Vous devez également écrire du code serveur.

Conclusion :Allez-y.Je l'ai fait.

Autres conseils

Une autre option pour développer des applications ou des jeux de bureau simples en JavaScript est Adobe AIR.Vous pouvez créer le code de votre application en HTML + JavaScript ou en utilisant Flash/Flex ou une combinaison des deux.Il a l’avantage d’être multiplateforme (en fait multiplateforme, Linux, OS X et Windows).Pas seulement Windows et OS X).

Bon sang, c'est peut-être la seule fois dans votre carrière de développeur que vous pouvez écrire une page Web et cibler UNIQUEMENT UN navigateur.

SproutCore est un framework d'application entièrement hébergé en JavaScript, empruntant notamment des concepts à Cocoa (comme KVO) et Ruby on Rails (comme l'utilisation d'un générateur CLI pour vos modèles, vues et contrôleurs).Il inclut Prototype, mais construit en plus de nombreux éléments tels que des commandes sophistiquées.C'est Photos la démo est sans doute impressionnante (surtout dans Safari 3.1).

Greg vous a déjà indiqué Gears ;De plus, HTML 5 sera doté d'un moyen standardisé de stockage local.Safari 3.1 est livré avec une implémentation dans laquelle vous disposez d'une base de données SQLite par site avec des tailles maximales définissables par l'utilisateur, ainsi qu'un navigateur de base de données intégré avec requêtes SQL.Malheureusement, il faudra beaucoup de temps avant que nous puissions nous attendre à une large prise en charge des navigateurs.En attendant, Gears est bel et bien une alternative (mais pas pour Safari…encore!).Pour un stockage plus simple, il existe bien entendu toujours des cookies.

L'inconvénient serait que vous êtes à la merci de l'activation de js.Je ne suis pas sûr que ce soit un gros problème maintenant.Pratiquement tous les navigateurs prennent en charge js et l'ont activé par défaut.

Bien entendu, l’autre inconvénient serait la performance.Vous êtes à nouveau à la merci du client qui gère tout le travail intensif.Cela n’est peut-être pas non plus très grave et dépend du type d’application que vous créez.

Je n'ai jamais utilisé Gears, mais il semble que cela vaut le coup.Le plan de sauvegarde consisterait à exécuter un script côté serveur via ajax qui vide vos données quelque part.

Pas complètement côté client, mais bon.

Nihilogique (pas mon site) fait beaucoup de choses avec Javascript.Ils en ont même plusieurs Jeux qu'ils ont réalisé en Javascript.

J'ai également vu un joli jeu roguelike réalisé en Javascript.Malheureusement, je ne me souviens plus de son nom...

Si vous souhaitez écrire une application JavaScript autonome, consultez XULrunner.C'est sur quoi Firefox est construit, mais il est également conçu pour que vous puissiez le distribuer en tant que moteur d'exécution d'application.Vous écrirez une partie de l’interface en JavaScript et utiliserez JavaScript pour votre code.

Engrenages peut fournir le stockage de données persistant côté client dont vous avez besoin.Il n’existe cependant pas de très bon moyen de ne pas exposer votre code source.Vous pouvez l'obscurcir, mais cela n'aide que quelque peu.

J'ai créé des applications simples comme celle-ci pour des choses comme un Solveur de Sudoku.

Vous pourriez rencontrer des problèmes de performances étant donné que vous êtes entièrement à la merci de l'interpréteur Javascript du client.Gears serait un bon moyen de stockage de données, mais je ne pense pas qu'il ait autant pénétré le marché.Vous pouvez simplement utiliser des cookies si vous n'êtes pas pointilleux sur ce genre de choses.

Je suis avec ScottKoon ici, Adobe AIR est génial.Je n'ai vraiment créé qu'un seul widget vraiment sympa (à mon humble avis) jusqu'à présent, mais je l'ai fait en utilisant jQuery et Prototype.js, qui ont été si merveilleux parce que je n'ai pas eu à apprendre un tout nouveau modèle d'événement.Adobe AIR est vraiment génial, l'empreinte mémoire n'est pas trop mauvaise, la mise à niveau vers une nouvelle version est intégrée à AIR donc c'est presque automatique, et le meilleur de tout, c'est multiplateforme... ils ont même une version alpha pour Linux , mais cela fonctionne déjà plutôt bien sur mon Eee.

Jeux autonomes dans GWT :

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

En ce qui concerne l'enregistrement de fichiers à partir d'une application javascript :

Je suis vraiment enthousiasmé par les possibilités des applications côté client.Flash 10 a introduit la possibilité de créer des fichiers à enregistrer directement dans le navigateur.J'ai trouvé ça super cool, alors j'ai construit un composant javascript+flash pour envelopper la fonctionnalité de sauvegarde.Pour le moment, cela ne fonctionne que pour créer des fichiers texte (vcard, ical, xml, html, css, etc.)

  1. Télécharger la page d'accueil
  2. Code source et documentation sur Github
  3. Voir son utilisation sur Starter pour jQuery

Je cherche bientôt à ajouter la prise en charge des fichiers non texte, mais c'est un début.

Mes flux RSS m'ont bien servi - j'ai trouvé ce roguelike Javascript !

C'est appelé Les tombeaux d'Asciiroth.

Étant donné que vous allez de toute façon écrire du code serveur, il est logique de conserver le stockage sur le serveur pour de nombreux domaines (carnets d'adresses, scores de poker, configuration de l'interface graphique, etc.). que vous obtiendrez dans Webkit ou Gears, vous pourrez probablement aussi le conserver sur votre serveur.

L’avantage de le conserver sur votre serveur est double :

  1. Vous pouvez l'intégrer assez simplement en tant que couche Modèle dans un framework MVC typique, et,
  2. Les utilisateurs bénéficient d'une vue cohérente sans être liés à leur navigateur/PC ou dans un environnement loin d'être idéal (cafés Internet).

Le code du serveur permettant de gérer cela peut également être assez trivial, en particulier s'il est écrit en pensant à cette tâche, ce qui ne représente donc pas une énorme charge cognitive.

Allez avec qooxdoo.Ils ont récemment publié la version 1.0, bien que la plupart des utilisateurs disent qu'elle était prête pour la 1.0 il y a au moins deux versions.

J'ai comparé qooxdoo avec YUI et ext, et je pense que qooxdoo est la voie à suivre pour les programmeurs - YUI n'est pas aussi raffiné que qooxdoo, du point de vue d'un programmeur et ext a un modèle de licence pas si convivial.

Quelques-uns des points forts (pour moi) de qooxdoo sont :

  • code extrêmement propre
  • le modèle de programmation OO le plus sympa que j'ai vu parmi les frameworks Javascript
  • une bibliothèque de widgets d'interface utilisateur extrêmement riche

Il comprend également un exécuteur de tests pour les tests unitaires, un générateur et un lecteur de documents API, une fonction de journalisation et plusieurs fonctionnalités utiles pour le débogage, regroupées sous quelque chose appelé Inspecteur.

Le seul inconvénient est qu'il n'y a pas de thèmes prêts à l'emploi (quelque chose comme des skins) pour qooxdoo.Mais créer votre propre thème est assez simple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top