Welche Rahmenbedingungen würden Sie für die Herstellung von Desktop-ähnlichen Anwendungen für das Web empfehlen? [geschlossen]

StackOverflow https://stackoverflow.com/questions/148118

Frage

Mehrere Frameworks für die Erstellung von Web-basierten Desktop-ähnlichen Anwendungen haben vor kurzem erschienen. Z.B. SproutCore und Cappuccino . mit ihnen Sie haben keine Erfahrung? Was ist Ihr Eindruck? Habe ich vermisse einen anderen Rahmen?

Ich habe gesehen, Fragen im Zusammenhang auf Stackoverflow, aber sie erzeugen meist Standardantworten wie „jQuery oder MochiKit oder MooTools oder Dojo oder YUI verwenden“. Während einige Leute geben nicht-Standard- Antworten , scheinen sie wenig Erfahrung mit diese Frameworks.

haben

Kann jemand wirkliche Erfahrung in der Entwicklung destop artigen Anwendungen für den Browser teilen?

War es hilfreich?

Lösung

Aufgrund der Geschwindigkeitsprobleme diese High-Level-Frameworks für viele größere verursachen (wie in: nicht-triviale) -Anwendungen, nur wir schlicht jQuery verwenden. In unseren Tests alle brach High-Level-Frameworks in Situationen nach unten, wo es viele ziehbar Objekte oder viele Drop-Ziele sind, und in Situation, in langen Listen (mit> 1000 Einträge) wurden auf dem Bildschirm angezeigt.

Ein Teil davon ist aufgrund von Problemen mit IE6 und IE7 (in denen die Leistung plötzlich dramatisch zu verschlechtern beginnt, nachdem DOM Bäume eine gewisse Komplexität erreichen), aber ein Teil ist aufgrund der Overhead diese Frameworks erzeugen.

So würde ich nicht von dem High-Level-Frameworks empfehlen. Meine Empfehlung wäre jQuery zu verwenden und direkt mit dem DOM arbeiten.

Einige Tipps zur Verbesserung der Leistung:

  • Wo möglicherweise machen HTML auf die Server.
  • Halten Sie die HTML so einfach wie möglich.
  • Vermeiden Sie viele Elemente, die im DOM-Baum.
  • Vermeiden Sie rekursive Tabellenstruktur (IE plötzlich nicht mehr sie nach relativ wenigen zeigt Verschachtelungsebenen).
  • Entfernen unsichtbar Elemente aus dem DOM-Baum.
  • Entfernen Dinge aus dem Baum DOM vor Ändern sie und dann wieder einsetzen sie, anstatt sie zu verändern während sie in dem Baum sind.

Andere Tipps

Zu meiner Sicht, Cappuccino ist ein Beispiel dafür, was nicht zu tun. Sie führten eine andere Sprache oben auf JavaScript, das bereits Langsamkeit bringen, während Browser-Entwickler bereits kämpfen hart gegen, und, was Schlimmste ist, sie verlassen sich nicht auf alle auf dem Browser-Widget, brechen alle Benutzer Navigationserlebnis. Zum Beispiel implementiert sie ihre eigenen Scrollbar mit dem Hauptnachteil, dass Mausrad mit nicht mehr funktionieren!

Ich ziehe ExtJS Ansatz wirklich, die Ihnen reich Widgets geben, während die Benutzeroberfläche so nah wie möglich aus dem Browser heraus zu halten.

ich auch, wie Gizmo, empfehlen EXT JS. Ihre Lizenz hat sich geändert und es kann nicht für alle arbeiten, aber es ist immer noch eine gute Wahl, wenn Sie Sachen wie eine Desktop tun wollen.

Hier ist ihre Beispielseite für eine Desktop-Umgebung: http: // extjs. com / deploy / dev / examples / desktop / desktop.html

Apple zeigt, dass SproutCore funktioniert, obwohl es schwer abzuschätzen ist, wie gut es funktioniert. Derzeit baue ich Web-Anwendungen mit einem home-grown von Bibliotheken gesetzt, eine Reihe von Funktionen aus unserer Windows-Software-Suite Duplizieren (aber auf eine Web-Schnittstelle angepasst). Bis jetzt habe ich Frameworks besonders aus dem Grunde vermieden, dass ich nicht das aufblasen wollte. Das Problem bei diesem Ansatz ist, dass ich übermäßig viel Zeit dupliziert Funktionalität verschwenden, die in dem Rahmen bereits ist, und ich fühle, dass im Laufe der Zeit, die ich auf etwas nähern werde, der diese Rahmenbedingungen ähnelt.

Aus diesem Grunde habe ich experimentiert mit einem Web-App in extjs Implementierung und es war eine überraschend schöne Erfahrung. Die Leistung ist hervorragend, und die einfache Entwicklung ist recht hoch, weil ihr Komponentensatz für tatsächlich bauen apps gut ist, nicht nur für die Phantasie Demos (ein weit verbreitetes Problem in Web-Toolkits). Ich würde es auf jeden Fall empfehlen, wenn Sie in dem Aufbau Desktop-ähnliche Web-Anwendungen interessiert sind.

Das Problem, das es durch die Aufstockung der offensichtlich immer noch gilt, aber ehrlich gesagt, ich glaube, dass es besser ist, ein Toolkit in Situationen zu verwenden, in denen Maßstab nicht so wichtig ist, und nur auf grundlegende Javascript zu Rückfall, wo Sie brauchen, um (vorzeitige Optimierung die seine Wurzel alles bösen). Extjs kann oben auf Prototypen oder jquery Schicht, so dass dieser Ansatz ist auf jeden Fall machbar. zu viel Inhalt in der DOM zu vermeiden, ist in der Regel ein Ansatz von Be- und Entladen auf Abruf. Zum Beispiel gibt es eine dritte Partei Erweiterung die extjs Raster-Klasse, indem sie klug über das Laden und Entladen von Daten über eine Million Zeilen-Datensatz erlaubt Scrollen.

Sie betrachten könnte mit GWT-Ext (verwendet Ext unten) könnte sein, eine sehr saubere Lösung, wenn Sie vorhaben, Java zu verwenden.

Ich mag qooxdoo , obwohl es den OOP-Ansatz von JS statt der prototypal nimmt, ist es ein solider Rahmen und hat viele Funktionen.

Ich habe keine Erfahrung mit SproutCore oder Capuccino. Aber hat man versucht, Dojo zu verwenden, auf der Django für diese Art von Arbeit. Kann nur sagen, es ist langsam und fehlerhaft.

extjs könnte hilfreich sein. http://dev.extjs.com/deploy/dev/examples/

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