ItsNat - ItsNat - Wikipedia
Эта статья нужны дополнительные цитаты для проверка.Июнь 2008 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
изначальный выпуск | 1 ноября 2007 г. |
---|---|
Стабильный выпуск | 1.4 / 18 сентября 2015 г. |
Написано в | Ява |
Операционная система | Кроссплатформенность: JVM |
Тип | Фреймворк Ajax |
Лицензия | Двойная лицензия: LGPL, Проприетарный [1] |
Интернет сайт | www |
ItsNat Естественный AJAX - это Открытый исходный код Ява компонентный Фреймворк Ajax.
Обзор
ItsNat имитирует виртуальный браузер в приложении Java, запущенном на сервере. Этот виртуальный браузер представляет документы с помощью W3C с ДОМ Дерево узлов уровня 2 и документы могут быть изменены в любое время с помощью внешнего кода Java, запущенного на сервере. С помощью AJAX браузер реального пользователя синхронизируется с виртуальным браузером сервера и может передавать ему события W3C DOM.[2] Это можно, например, использовать для автоматического тестирование реального браузера под управлением сервера.[3]
Начиная с версии 1.3 [4] ItsNat предоставляет новый режим без сохранения состояния.
ItsNat ориентирован на сервер SEO совместимый Одностраничные приложения и веб-сайты.
Как это устроено
- Режим с отслеживанием состояния
Когда дерево DOM сервера изменяется с использованием API Java W3C DOM, разработчик, эта модификация обнаруживается (запускается события мутации DOM) и автоматически отправляется в настоящий веб-браузер как JavaScript Код на основе DOM, синхронизирующий клиент DOM соответственно, обычно как ответ на событие AJAX (ItsNat в значительной степени основан на AJAX).
Код разработчика на сервере может зарегистрировать слушателей событий Java W3C DOM, которые прослушивают события W3C DOM, эта регистрация слушателя автоматически распространяется на клиент. Когда Пользователь например, щелкает элемент «прослушиваемый», реальное событие браузера отправляется на сервер с помощью AJAX, конвертируется в событие W3C DOM и принимается сервером (прослушивателями).
Исходный макет страницы определяется с использованием чистого HTML, XHTML, SVG, или же XUL основан шаблоны без логики. Если модификация большая, ItsNat предоставляет «фрагменты шаблона», фрагмент шаблона - это часть разметка которые могут быть вставлены (включены) как DOM в основное дерево статически или динамически (обычно в ответ на событие пользователя / Ajax).
Для экономии памяти сервера ItsNat предоставляет кэш узлов дерева DOM в сериализованной форме (в виде обычного текста, а не DOM), а поддеревья DOM, которые больше не используются, могут быть удалены вручную только в памяти, сохраняющей сервер (клиентская DOM остается нетронутой).
Несмотря на тот же контракт DOM клиент-сервер, ItsNat обеспечивает некоторую толерантность к узлам DOM, представленным кодом JavaScript, отличным от ItsNat, статические зоны на сервере могут управляться кодом JavaScript, отличным от ItsNat, поддеревья DOM, удаленные только на сервере, можно свободно изменять в клиенте, а в некоторых местах (между элементами головы и тела и на их концах) допускаются «навязчивые» узлы.
- Режим без сохранения состояния
В режиме без сохранения состояния, представленном в версии 1.3, клиентская страница отправляет необходимые пользовательские данные текущего состояния на сервер обычно через запросы AJAX, сервер с этими данными может частично или полностью восстановить состояние DOM клиента, которое будет изменено, и генерировать необходимый код DOM JavaScript, возвращаемый клиенту для перевода его в новое состояние, обычно изменяя дерево DOM клиентской страницы в соответствии с действием, которое послужило причиной запроса. Этот режим может быть не таким точным и производительным, чем режим с отслеживанием состояния, однако этот подход более легко масштабируем, поскольку на сервере нет данных о каждой странице клиента, и поэтому запросы AJAX могут быть отправлены на разные серверные узлы без необходимости в данных сеанса. совместное использование или привязка к серверу в режиме с отслеживанием состояния.
Основные особенности
- Автоматическая синхронизация клиента с сервера.
- Некоторая поддержка автоматической синхронизации сервера от клиента.
- Web-продолжения: события «продолжить».
- Типы событий, определяемые пользователем.
- AJAX таймеры.
- Длительные асинхронные серверные задачи: клиент получает уведомление о завершении.
- Комета без специальных (НИО или похожие) Сервлет двигатели.
- Утилиты DOM на стороне сервера: для упрощения манипуляций с DOM, таких как списки, деревья, поддержка ElementCSSInlineStyle и т. Д.
- Разрешение переменных на основе $ {} в разметке: помогает сохранять код Java DOM как можно более независимым от конкретного макета.
- Фрагменты разметки: динамические части страницы, которые могут быть вставлены в любое время, что очень полезно в одностраничном интерфейсе.
- SVG и другие пространства имен, встроенный в XHTML и application / xhtml + xml MIME.
- SVG и другие пространства имен, встроенные в X / HTML и text / html MIME в
- Браузеры с собственным SVG.
- MSIE с плагином Adobe SVG Viewer (v3.0), включая динамическую обработку SVG DOM.
- Любой браузер с поддержкой Flash, использующий SVGWeb.
- Документы чистого SVG, включая AJAX, в браузерах с собственным SVG или MSIE с Adobe SVG Viewer или плагином Savarese Ssrc.
- Чистые документы XUL, включая AJAX в браузерах Gecko (например, FireFox) или MSIE с плагином Savarese Ssrc.
- Генерация XML.
- IFrame / Object / Embed / Applet Auto-Binding: в серверных дочерних документах, открытых тегами IFRAME, OBJECT, EMBED или APPLET, они автоматически привязываются к родительскому документу на сервере. Эта функция работает с:
- X / HTML загружается IFRAME.
- SVG, загруженный с помощью IFRAME / OBJECT / EMBED в браузерах с собственным SVG или MSIE с Adobe SVG Viewer или Savarese Ssrc: только OBJECT и EMBED.
- SVG загружается апплетом Batik (пользовательская версия для ItsNat) в APPLET / OBJECT / EMBED.
- Утилиты генерации Java в JavaScript.
- События, отправленные сервером (события, инициированные сервером, отправленные клиенту, имитирующие действия пользователя) с помощью реального браузера или смоделированы, например, для тестирования представления клиента, имитирующего действия пользователя или имитирующего клиента на сервере.
- Ссылки: при навигации по страницам можно получить предыдущий документ на сервере для копирования любых данных, избегая данных сеанса в приложениях на основе страниц: навигация включает поддержку назад / вперед / перезагрузки; два режима: толкать и тянуть.
- Ухудшенные режимы: режимы с отключенным AJAX и отключенным JavaScript.
- Экстремальные мэшапы.
- Создание закладок AJAX: или создание закладок в приложениях с одностраничным интерфейсом.
- Красивые URL-адреса.
- Автоматическое управление удаленными страницами / просмотром других пользователей / сеансов.
- Удаленные шаблоны.
Компонентная система
ItsNat предоставляет дополнительную систему компонентов, созданную с использованием основных функций платформы. Эти компоненты основаны на AJAX и вдохновлены Качать, повторное использование Swing в максимально возможной степени, например данных и моделей выбора, но ItsNat не является клоном Swing в сети и не является пиксель веб-фреймворк.
ItsNat предоставляет несколько типов кнопок, текстовые компоненты, метки, списки, таблицы, деревья, обычно с редактируемым содержимым «на месте».
Любой элемент HTML может быть компонентом, например, любой элемент может быть обычной кнопкой, флажком, переключателем, любой список элементов может быть комбо или компонентом списка, например, группа кругов SVG может быть множественным выбором компонент списка. Компоненты также могут использоваться для генерации XML.
Компоненты ItsNat не навязчивы, потому что представление компонента (разметка) предоставляется разработчиком и прикрепляется к компоненту.
Реквизиты, площадки
ItsNat - это чистая Java и работает в любом Виртуальная машина Java v1.5 в качестве минимальной конфигурации и практически любого контейнера, совместимого с сервлетами.
Google App Engine поддерживается, включая AJAX с некоторыми ограничениями.
- Поддерживаемые настольные браузеры
Гугл Хром, Fire Fox, Internet Explorer 6+ (включая v9), Опера 12.12+ и Сафари 5.1.7+.
- Мобильные браузеры (все включая AJAX)
- На основе WebKit:
- Опера:
- опера мини 4.x +
- Opera Mobile 12.10+
- BlackBerry JDE 4.6+ (Смелый, Буря верхний)
Плагины SVG (включая AJAX): Adobe SVG Viewer v3 [1], Savarese Ssrc [2] (добавляет XUL и в MSIE), SVGWeb [3], и Батик как апплет.
Смотрите также
- Ajax (программирование)
- Фреймворк Ajax
- Комета (программирование)
- Веб-фреймворк
- Сравнение веб-фреймворков