Qooxdoo

Qooxdoo
Qooxdoo-feedreader.png
Webbrowser Ausführen einer Qooxdoo -Anwendung
Stabile Version
6.0.1 / 4. Februar 2021; Vor 17 Monaten[1]
Repository
Typ JavaScript -Anwendungsrahmen
Lizenz LGPL, EPL
Webseite Qooxdoo.org


Qooxdoo /ˈkksd/ ist ein Open Source Ajax Webanwendungs ​​-Framework. Es ist ein LGPL- und/oder EPL-Lizenzierte clientseitige und server-agnostische Lösung und beinhaltet die Unterstützung für professionelle JavaScript Entwicklung, a grafische Benutzeroberfläche (GUI) Toolkit und hochrangige Kunden-Server-Kommunikation.

Rahmen

QooxDoo ist vollständig klassenbasiert und versucht, die Funktionen von zu nutzen objektorientierter JavaScript und basiert auf Namespaces. Die meisten modernen Browser werden unterstützt, einschließlich Gecko (Feuerfuchs, Mozilla, Seeaffe), Presto (Oper), Dreizack (Internet Explorer, Echter Spieler, Winamp), Webkit (Chrom, Safari).[2] Es enthält eine API-Referenz, aus der automatisch generiert wird Javadoc-ähnliche Kommentare. Zu den begleitenden Toolset gehört ein umfassender JavaScript Parser Dies ist ein wesentlicher Bestandteil des automatischen Build -Prozesses und wird zur Optimierung verwendet. Kompresse, Link und einsetzen Brauch Anwendungenund dokumentation generieren. Internationalisierung und Lokalisierung von Anwendungen werden unterstützt. QooxDoo kann heruntergeladen werden[3] als umfassend SDK.

GUI -Toolkit

Obwohl Qooxdoo ein reines JavaScript -Framework ist, ist er mit GUI -Toolkits wie ganz gleichzügig Qt, Standard -Widget -Toolkit (SWT) und andere in Bezug auf die Implementierung Benutzeroberflächen. Es bietet eine Reihe von Widgets Das ähnelt Elementen nativer Desktop -Anwendungen. Die integrierte Unterstützung für Tastaturnavigation, Fokus und Registerkartenhandhabung und Drag & Drop wird bereitgestellt. Die Abmessungen können als statisch, automatisch Größe, Dehnung, Prozentsatz, gewichteter Flex oder Min/Max oder sogar als Kombinationen angegeben werden. Alle Widgets basieren auf flexiblen Layout -Managern, die für viele fortschrittliche Layout -Fähigkeiten maßgeblich sind. Die Schnittstellenbeschreibung erfolgt programmgesteuert in JavaScript für eine verbesserte Leistung.

Das Definieren der Benutzeroberfläche benötigt nein Htmlund das Styling der Schnittstelle braucht nein Cascading Style Sheets (CSS). Einfache Aussehensthemen werden verwendet, um Farben, Symbole und andere visuelle Eigenschaften zu stylen. Sie unterstützen auch Runtime Switching.

Objekt orientierte Programmierung

QooxDoo verwendet ein geschlossenes Formular, um neue Klassen zu definieren. Der Global Class Constructor nimmt zwei Argumente auf, den Namen der neuen Klasse und eine Karte, die Werte für eine Reihe vordefinierter Schlüssel wie "Konstrukt" (The Constructor Method Hook), "Statik" (für statische Klassenattribute und -methoden) liefert. "Mitglieder" (zum Beispiel Attribute und Methoden) und "Zerstörungen" (für den Destruktor). Diese (möglicherweise große) Karte repräsentiert die Klassendefinition. Klassen können von anderen Klassen unter Verwendung des Schlüsselworts "Extend" abgeleitet werden.

Das folgende Anwendungsskelett vermittelt einen Eindruck davon, wie das funktioniert. Der Code erstellt eine kleine Anwendung mit einer Taste mit einem Tooltip und öffnet beim Drücken ein Alarmbox. Sie können diesen Code auch in einem Online -Spielplatz ausführen und bearbeiten:[4]

QX.Klasse.definieren("benutzerdefinierte Anwendung", {  erweitern : QX.Anwendung.Eigenständige,  Mitglieder :  {  hauptsächlich : Funktion()  {  Dies.Base(Argumente);  // Schaltfläche erstellen  var Taste 1 = Neu QX.UI.bilden.Taste("Erster Schaltfläche",   "Icon/22/Apps/Internet-Web-Browser.png");  // Dokument ist das Anwendungsroot  var Dokument = Dies.Getroot();  // Schaltfläche hinzufügen, um unter festen Koordinaten zu dokumentieren  Dokument.hinzufügen(Taste 1, {links: 100, oben: 50});  // Fügen Sie einen Tooltip an  Taste 1.settooltip(Neu QX.UI.Tooltip.Tooltip("Ein schönes Tooltip",  "Icon/32/Status/Dialoginformation.png"));  // einen Event -Hörer hinzufügen  Taste 1.Addierener("ausführen", Funktion(e) {  Alarm("Hallo Welt!");  });  }  } }); 

Schnittstellen und Mischungen werden auf ähnliche Weise definiert und verwendet.

Ajax

Das qooxDoo-Projekt ist zwar eine clientseitige und server-agnostische Lösung, findet jedoch optional statt RPC Serverimplementierungen (derzeit in Java, Php, Perl und Python) Kommunikation des Kunden-Servers demonstrieren. Eine abstrakte Transportschicht unterstützt Warteschlangen, Zeitüberschreitungen und Implementierungen über XmlhttprequestIframes und Skripte. Wie der Rest von Qooxdoo stützt sich diese Ebene auf ereignisbasierte Programme, um zu vereinfachen asynchron Kommunikation.

Siehe auch

Verweise

  1. ^ "qooxdoo 6.0.0 Release". github.com. 2021-02-04. Abgerufen 2021-03-10.
  2. ^ "Qooxdoo Anforderungen". Abgerufen 2. Februar 2011.
  3. ^ "Qooxdoo Download Seite". Abgerufen 2. Februar 2011.
  4. ^ "Spielplatz". Abgerufen 2. Februar 2011.

Quellen

Externe Links