группа
![]() | Тема этой статьи может не соответствовать рекомендациям Википедии по известности продуктов и услуг . ( май 2020 г. ) |
![]() Веб-браузер, на котором запущено приложение qooxdoo | |
Стабильная версия | 7.2.1
/ 11 июля 2022 г [1] |
---|---|
Репозиторий | |
Тип | Фреймворк приложений JavaScript |
Лицензия | ЛГПЛ , ЭПЛ |
Веб-сайт | группа |
qooxdoo / ˈ k uː k s d uː / — это с открытым исходным кодом Ajax платформа веб-приложений . Это LGPL и/или EPL клиентское и серверно-независимое решение с лицензией , которое включает поддержку профессиональной разработки JavaScript , графического пользовательского интерфейса (GUI) набор инструментов и высокоуровневую связь клиент-сервер.
Рамки
[ редактировать ]qooxdoo полностью основан на классах, пытается использовать возможности объектно-ориентированного JavaScript и основан на пространствах имен . Поддерживаются большинство современных браузеров, включая Gecko ( Firefox , Mozilla , SeaMonkey ), Presto ( Opera ), Trident ( Internet Explorer , RealPlayer , Winamp ), WebKit ( Chrome , Safari ). [2] Он включает ссылку на API, которая автоматически генерируется из комментариев, подобных Javadoc . В состав сопутствующего набора инструментов входит комплексный анализатор JavaScript , который является неотъемлемой частью процесса автоматической сборки и используется для оптимизации, сжатия , связывания и развертывания пользовательских приложений , а также создания документации. Поддерживается интернационализация и локализация приложений. qooxdoo можно скачать [3] как комплексный SDK .
набор инструментов графического интерфейса
[ редактировать ]Несмотря на то, что qooxdoo представляет собой чистый фреймворк JavaScript, он вполне соответствует инструментам GUI, таким как Qt , Standard Widget Toolkit (SWT) и другим, в отношении реализации пользовательских интерфейсов . Он предлагает набор виджетов , напоминающих элементы собственных настольных приложений. Обеспечена встроенная поддержка навигации с помощью клавиатуры, управления фокусом и вкладками, а также перетаскивания. Размеры могут быть заданы как статические, автоматические, растягиваемые, процентные, взвешенные, минимальные/максимальные или даже в виде комбинаций. Все виджеты основаны на гибких менеджерах компоновки, которые играют важную роль во многих расширенных возможностях компоновки. Описание интерфейса выполняется программно на JavaScript для повышения производительности.
Для определения пользовательского интерфейса не требуется HTML , а для стилизации интерфейса не нужны каскадные таблицы стилей (CSS). Простые темы внешнего вида используются для оформления цветов, значков и других визуальных свойств; они также поддерживают переключение во время выполнения.
Объектно-ориентированное программирование
[ редактировать ]qooxdoo использует закрытую форму для определения новых классов. Конструктор глобального класса принимает два аргумента: имя нового класса и карту, которая предоставляет значения для набора предопределенных ключей, таких как «construct» (перехват метода конструктора), «statics» (для атрибутов и методов статического класса), «члены» (например, атрибуты и методы) и «destruct» (для деструктора). Эта (возможно, большая) карта представляет определение класса. Классы могут быть получены из других классов с помощью ключевого слова «extend».
Следующий скелет приложения дает представление о том, как это работает. Код создаст небольшое приложение с кнопкой, которая имеет всплывающую подсказку и при нажатии открывает окно предупреждения. Вы также можете запускать и редактировать этот код на онлайн-игровой площадке: [4]
qx.Class.define("custom.Application",
{
extend : qx.application.Standalone,
members :
{
main : function()
{
this.base(arguments);
// Create button
var button1 = new qx.ui.form.Button("First Button",
"icon/22/apps/internet-web-browser.png");
// Document is the application root
var doc = this.getRoot();
// Add button to document at fixed coordinates
doc.add(button1, {left: 100, top: 50});
// Attach a tooltip
button1.setToolTip(new qx.ui.tooltip.ToolTip("A nice tooltip",
"icon/32/status/dialog-information.png"));
// Add an event listener
button1.addListener("execute", function(e) {
alert("Hello World!");
});
}
}
});
Интерфейсы и примеси определяются и используются аналогичным образом.
Аякс
[ редактировать ]Будучи клиентским и серверно-независимым решением, проект qooxdoo включает в себя дополнительные реализации RPC- сервера (в настоящее время на Java , PHP , Perl и Python ) для демонстрации взаимодействия клиент-сервер. Абстрактный транспортный уровень поддерживает очереди , таймауты и реализации через XMLHttpRequest , Iframes и скрипты. Как и остальная часть qooxdoo, этот уровень основан на программировании на основе событий для упрощения асинхронной связи.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Выпуск v7.2.1 · qooxdoo/qooxdoo» . github.com . 11 июля 2022 г. Проверено 9 октября 2022 г.
- ^ «Требования qooxdoo» . Проверено 2 февраля 2011 г.
- ^ «Страница загрузки qooxdoo» . Проверено 2 февраля 2011 г.
- ^ «Детская площадка» . Проверено 2 февраля 2011 г.
Источники
[ редактировать ]- Демо
- Справочник по API
- Страница проекта Sourceforge
- Видеобриф на Ajaxian.com
- Критический обзор TechRepublic на archive.today (заархивировано 2 января 2013 г.)
- Обзор HTMLGoodies