Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

ItsNat Natural AJAX - это среда Ajax с открытым исходным кодом, основанная на компонентах Java .

Обзор [ править ]

ItsNat имитирует виртуальный браузер в приложении Java, запущенном на сервере. Этот виртуальный браузер представляет документы , используя W3C «s DOM Level 2 узла дерева, и документы могут быть изменены в любое время с помощью внешнего кода Java , работающего на сервере. С помощью AJAX браузер реального пользователя синхронизируется с виртуальным браузером сервера и может передавать ему события W3C DOM. [2] Это можно использовать, например, для автоматического тестирования реального браузера под управлением сервера. [3]

Начиная с версии 1.3 [4] ItsNat предоставляет новый режим без сохранения состояния.

ItsNat фокусируется на ориентированных на сервер SEO- совместимых одностраничных приложениях и веб-сайтах.

Как это работает [ править ]

Режим с отслеживанием состояния

Когда дерево DOM сервера изменяется с помощью API Java W3C DOM разработчиком , эта модификация обнаруживается (запускается события мутации DOM) и автоматически отправляется в настоящий веб-браузер в виде кода на основе DOM JavaScript , соответственно синхронизируя клиентскую 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 таймеры .
  • Длительные асинхронные серверные задачи: клиент получает уведомление о завершении.
  • Комета без специальных ( NIO или подобных) сервлетных двигателей.
  • Утилиты 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 , повторно используя Swing, насколько это возможно, например, модели данных и выбора, но ItsNat не является клоном Swing в сети и не является веб-фреймворком на основе пикселей .

ItsNat предоставляет несколько типов кнопок, текстовые компоненты, метки, списки, таблицы, деревья, обычно с редактируемым содержимым «на месте».

Любой элемент HTML может быть компонентом, например, любой элемент может быть обычной кнопкой, флажком, переключателем, любой список элементов может быть комбинированным или компонентом списка, например, группа кругов SVG может быть множественным выбором компонент списка. Компоненты также могут использоваться для генерации XML.

Компоненты ItsNat не навязчивы, потому что представление компонента (разметка) предоставляется разработчиком и прикрепляется к компоненту.

Реквизиты, платформы [ править ]

ItsNat - это чистая Java и работает на любой виртуальной машине Java v1.5 в минимальной конфигурации и практически в любом контейнере, совместимом с сервлетами.

Поддерживается Google App Engine , включая AJAX с некоторыми ограничениями.

Поддерживаемые настольные браузеры

Google Chrome , Firefox , Internet Explorer 6+ (включая v9), Opera 12.12+ и Safari 5.1.7+.

Мобильные браузеры (все, включая AJAX)
  • На основе WebKit:
    • Android 2.1+
    • iPhone / iPad / iPod Touch iOS 6.1+
    • S60WebKit (начиная с S60 5-го v1)
    • S40WebKit (начиная с S40 6-го)
  • Опера:
    • Opera Mini 4.x +
    • Opera Mobile 12.10+
  • Ежевики JDE 4.6+ ( Жирный , шторм верхний)

Плагины SVG (включая AJAX): Adobe SVG Viewer v3 [1] , Savarese Ssrc [2] (также добавляет XUL в MSIE), SVGWeb [3] и Batik в качестве апплета.

См. Также [ править ]

  • Ajax (программирование)
  • Фреймворк Ajax
  • Комета (программирование)
  • Веб-фреймворк
  • Сравнение веб-фреймворков

Ссылки [ править ]

  1. ^ Коммерческое лицензирование и поддержка ItsNat
  2. ^ Обзор ItsNat
  3. ^ http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=article&catid=49:functional-test-tools&id=411:itsnat-natural-ajax
  4. ^ "Примечания к выпуску ItsNat v1.3" . Проверено 9 июня 2013 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Онлайн-демонстрация и примеры с исходным кодом
  • Онлайн-демонстрация в Google App Engine
  • Представляем ItsNat (CometDaily)