Frage

Angesichts der gesteigerten Leistungsfähigkeit von JavaScript-Frameworks wie YUI, JQuery und Prototype sowie Debugging-Tools wie Firebug scheint die Erstellung einer Anwendung vollständig in browserseitigem JavaScript eine großartige Möglichkeit zu sein, einfache Anwendungen wie Puzzlespiele und spezielle Taschenrechner zu erstellen.

Hat dies einen Nachteil außer der Offenlegung Ihres Quellcodes?Wie sollte mit der Datenspeicherung für ein solches Programm umgegangen werden?

Bearbeiten:Ja, Gears und Cookies können für die lokale Speicherung verwendet werden, aber Sie können nicht einfach auf Dateien und andere Objekte zugreifen, die der Benutzer bereits in der Nähe hat.Sie können Daten für einen Benutzer auch nicht in einer Datei speichern, ohne dass dieser eine Browserfunktion aufruft, z. B. das Drucken als PDF oder das Speichern einer Seite als Datei.

War es hilfreich?

Lösung

Ich habe mehrere Anwendungen in JS geschrieben, einschließlich einer Tabellenkalkulation.

Oberseite:

  • tolle Sprache
  • kurzer Code-Ausführungs-Überprüfungszyklus
  • Die DOM-Manipulation eignet sich hervorragend für das UI-Design
  • Clients auf jedem Computer (und Telefon)

Nachteil:

  • Unterschiede zwischen Browsern (insbesondere IE)
  • Skalierbarkeit der Codebasis (ohne intrinsische Unterstützung für Namespaces und Klassen)
  • keine guten Debugger (besonders wiederum für den IE)
  • Leistung (auch wenn mit Firefox und Safari große Fortschritte gemacht wurden)
  • Sie müssen auch etwas Servercode schreiben.

Endeffekt:Tue es.Ich tat.

Andere Tipps

Eine weitere Möglichkeit, einfache Desktop-Anwendungen oder Spiele in JavaScript zu entwickeln, ist Adobe AIR.Sie können Ihren App-Code entweder in HTML + JavaScript oder mit Flash/Flex oder einer Kombination aus beidem erstellen.Es hat den Vorteil, dass es plattformübergreifend ist (eigentlich plattformübergreifend, Linux, OS X und Windows).Nicht nur Windows und OS X).

Verdammt, es ist möglicherweise das einzige Mal in Ihrer Karriere als Entwickler, dass Sie eine Webseite schreiben und NUR auf EINEN Browser abzielen können.

SproutCore ist ein vollständig auf JavaScript gehostetes Anwendungsframework, das Konzepte insbesondere von Cocoa (z. B. KVO) und Ruby on Rails (z. B. die Verwendung eines CLI-Generators für Ihre Modelle, Ansichten und Controller) übernimmt.Es enthält Prototype, baut aber darüber hinaus noch jede Menge Dinge auf, wie z. B. ausgefeilte Steuerungen.Es ist Fotos Die Demo ist wohl beeindruckend (besonders in Safari 3.1).

Greg hat Sie bereits auf Gears hingewiesen;Darüber hinaus wird HTML 5 über eine standardisierte Möglichkeit zur lokalen Speicherung verfügen.Safari 3.1 wird mit einer Implementierung ausgeliefert, bei der Sie über eine SQLite-Datenbank pro Site mit vom Benutzer einstellbaren Maximalgrößen verfügen, sowie über eine Integrierter Datenbankbrowser mit SQL-Abfrage.Leider wird es noch lange dauern, bis wir mit einer breiten Browserunterstützung rechnen können.Bis dahin ist Gears zwar eine Alternative (aber nicht für Safari…)noch!).Zur einfacheren Speicherung gibt es natürlich immer Cookies.

Der Nachteil dabei wäre, dass Sie ihnen ausgeliefert sind, wenn js aktiviert ist.Ich bin mir nicht sicher, ob das jetzt eine große Sache ist.Praktisch jeder Browser unterstützt js und hat es standardmäßig aktiviert.

Der andere Nachteil wäre natürlich die Leistung.Sie sind wiederum dem Kunden ausgeliefert, der die ganze intensive Arbeit bewältigen muss.Dies ist möglicherweise auch keine so große Sache und hängt von der Art der App ab, die Sie erstellen.

Ich habe Gears noch nie benutzt, aber es sieht so aus, als wäre es einen Versuch wert.Der Backup-Plan wäre, ein serverseitiges Skript über Ajax auszuführen, das Ihre Daten irgendwo ablegt.

Nicht ganz kundenseitig, aber na ja.

Nihilogisch (nicht meine Seite) macht eine Menge Dinge mit Javascript.Sie haben sogar mehrere Spiele die sie in Javascript erstellt haben.

Ich habe auch ein nettes Roguelike-Spiel gesehen, das in Javascript erstellt wurde.Leider kann ich mich nicht erinnern, wie es hieß...

Wenn Sie eine eigenständige JavaScript-Anwendung schreiben möchten, schauen Sie sich an XULrunner.Darauf basiert Firefox, aber es ist auch so konzipiert, dass Sie es als Anwendungslaufzeit verteilen können.Sie werden einen Teil der Schnittstelle in JavaScript schreiben und JavaScript für Ihren Code verwenden.

Getriebe stellt möglicherweise den clientseitigen persistenten Datenspeicher bereit, den Sie benötigen.Es gibt jedoch keine besonders gute Möglichkeit, Ihren Quellcode nicht offenzulegen.Man könnte es verschleiern, aber das hilft nur bedingt.

Ich habe einfache Apps wie diese für Dinge wie a erstellt Sudoku-Löser.

Da Sie vollständig dem Javascript-Interpreter des Clients ausgeliefert sind, kann es zu Leistungsproblemen kommen.Zahnräder wären eine schöne Art der Datenspeicherung, aber ich glaube nicht, dass sie den Markt so weit durchdrungen hat.Sie könnten einfach Cookies verwenden, wenn Sie in solchen Dingen nicht wählerisch sind.

Ich stimme hier mit ScottKoon überein, Adobe AIR ist großartig.Ich habe bisher wirklich nur ein wirklich schönes (meiner Meinung nach) Widget erstellt, aber ich habe das mit jQuery und Prototype.js gemacht, was so wunderbar funktioniert hat, weil ich kein ganz neues Ereignismodell lernen musste.Adobe AIR ist wirklich toll, der Speicherbedarf ist nicht allzu groß, das Upgrade auf eine neue Version ist in AIR integriert, sodass es fast automatisch erfolgt, und das Beste ist, dass es plattformübergreifend ist ... es gibt sogar eine Alpha-Version für Linux , aber auf meinem Eee funktioniert es schon ziemlich gut.

Eigenständige Spiele in GWT:

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

Bezüglich des Speicherns von Dateien aus einer Javascript-Anwendung:

Ich bin wirklich begeistert von den Möglichkeiten clientseitiger Anwendungen.Mit Flash 10 wurde die Möglichkeit eingeführt, Dateien zum Speichern direkt im Browser zu erstellen.Ich fand es super cool, also habe ich eine Javascript+Flash-Komponente erstellt, um die Speicherfunktion zu umschließen.Derzeit funktioniert es nur zum Erstellen textbasierter Dateien (vcard, ical, xml, html, css usw.).

  1. Startseite herunterladen
  2. Quellcode und Dokumentation auf Github
  3. Sehen Sie es im Einsatz bei Starter für jQuery

Ich möchte bald Unterstützung für Nicht-Textdateien hinzufügen, aber das ist ein Anfang.

Meine RSS-Feeds haben mir gute Dienste geleistet – ich fand, dass Javascript Roguelike ist!

Es heißt Die Gräber von Asciiroth.

Da Sie sowieso Servercode schreiben werden, ist es sinnvoll, für viele Domänen (Adressbücher, Pokerergebnisse, GUI-Konfiguration usw.) Speicherplatz auf dem Server zu behalten, für alles, was die Größe Ihrer Größe hat Wenn Sie Webkit oder Gears herunterladen, können Sie es wahrscheinlich auch auf Ihrem Server behalten.

Der Vorteil, es auf Ihrem Server zu behalten, ist zweierlei:

  1. Sie können es ganz einfach als Modellebene in ein typisches MVC-Framework integrieren und
  2. Benutzer erhalten eine konsistente Ansicht, ohne an ihren Browser/PC gebunden zu sein oder sich in einer nicht idealen Umgebung (Internetcafés) zu befinden.

Der Servercode, der dies handhabt, kann ebenfalls ziemlich trivial sein, insbesondere wenn er für diese Aufgabe geschrieben wurde, sodass er keine große kognitive Belastung darstellt.

Gehen Sie mit qooxdoo.Sie haben kürzlich 1.0 veröffentlicht, obwohl die meisten Benutzer sagen, dass es schon vor mindestens zwei Versionen für 1.0 reif war.

Ich habe qooxdoo mit YUI und ext verglichen und denke, dass qooxdoo der richtige Weg für Programmierer ist – YUI ist aus der Sicht eines Programmierers nicht so ausgefeilt wie qooxdoo und ext hat ein nicht so freundliches Lizenzmodell.

Einige der Stärken (für mich) von qooxdoo sind:

  • Extrem sauberer Code
  • das schönste OO-Programmiermodell, das ich unter den Javascript-Frameworks gesehen habe
  • eine äußerst umfangreiche UI-Widget-Bibliothek

Es verfügt außerdem über einen Test-Runner für Unit-Tests, einen API-Dokumentgenerator und -Leser, eine Protokollierungsfunktion und mehrere nützliche Funktionen zum Debuggen, die unter dem Namen „Inspector“ zusammengefasst sind.

Der einzige Nachteil ist, dass es für qooxdoo keine vorgefertigten Themes (so etwas wie Skins) gibt.Aber ein eigenes Theme zu erstellen ist ganz einfach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top