Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

</svg>

</body>

</html>

// Элемент body c uri его пространства имен и локальным именем

var tagname = d.body.name;

var bodyns = tagname.uri;

var localname = tagname.localName;

// Выборка элементов <svg> выполняется сложнее, потому что они не принадлежат

// пространству имен по умолчанию. Поэтому для выборки svg сначала нужно создать

// объект Namespace и затем использовать его

// оператор :: добавляет пространство имен в имя тега

var svg = new Namespace(' http://www.w3.org/2000/svg' );

var color = d..svg::rect.@fill // "red"

12 Серверный JavaScript

В предыдущих главах подробно рассматривался базовый язык JavaScript, и вскоре мы перейдем ко второй части книги, в которой рассказывается о том, как JavaScript встраивается в веб-броузеры, и описывается обширнейший API клиентского JavaScript. JavaScript - это язык программирования для Веб, и большая часть программного кода на языке JavaScript написана для выполнения в веб-броузерах. Однако JavaScript - это быстрый и универсальный язык с широкими возможностями, и нет никаких причин, по которым JavaScript не мог бы использоваться для решения других задач программирования. Поэтому, прежде чем перейти к знакомству с клиентским JavaScript, мы коротко рассмотрим две другие реализации JavaScript. Rhino - это интерпретатор JavaScript, написанный на языке Java, что обеспечивает программам на языке JavaScript доступ ко всем библиотекам языка Java. Интерпретатор Rhino рассматривается в разделе 12.1. Node -версия интерпретатора V8 JavaScript, созданного компанией Google, включающая низкоуровневые интерфейсные библиотеки доступа к POSIX (Unix) API -к файлам, процессам, потокам, сокетам и так далее - с особым упором на асинхронные операции ввода/вывода, сетевые взаимодействия и работу с протоколом HTTP. Интерпретатор Node рассматривается в разделе 12.2.

Название главы говорит, что она посвящена «серверному» JavaScript, а обычно для создания серверов и для управления ими используются интерпретаторы Node и Rhino. Но под словом «серверный» можно также понимать «все, что за пределами веб-броузера». Программы, выполняемые под управлением Rhino, способны создавать графические интерфейсы пользователя, используя фреймворк Swing для языка Java. А интерпретатор Node может выполнять программы на языке JavaScript, способные манипулировать файлами подобно тому, как это делают сценарии командной оболочки.

Цель этой короткой главы состоит в том, чтобы осветить некоторые направления за пределами веб-броузеров, где может использоваться язык JavaScript. Здесь не предпринимается попытка в полном объеме охватить интерпретатор Rhino или Node, а обсуждаемые здесь прикладные интерфейсы не описываются в справочном разделе. Очевидно, что в одной главе невозможно сколько-нибудь полно описать платформу Java или POSIX API, поэтому раздел об интерпретаторе Rhino предполагает, что читатели имеют некоторое знакомство с Java, а раздел об интерпретаторе Node предполагает знакомство с низкоуровневыми прикладными интерфейсами Unix.

12.1. Управление Java с помощью Rhino

Rhino - это интерпретатор JavaScript, написанный на языке Java, цель которого - упростить возможность создания программ на языке JavaScript, которые могли бы использовать мощь платформы Java. Интерпретатор Rhino автоматически выполняет преобразование простых типов JavaScript в простые типы Java и наоборот, благодаря чему сценарии на языке JavaScript могут читать и изменять свойства и вызывать методы объектов на языке Java.

Rhino определяет несколько важных глобальных функций, не являющихся частью базового языка JavaScript:

// Специфические глобальные функции, определяемые интерпретатором

// Введите help в строке приглашения rhino, чтобы получить дополнительную информацию

print(х); // Глобальная функция вывода в консоль

version(170); // Требует от Rhino задействовать особенности версии 1.7 );

load(filename.... // Загружает и выполняет один или более файлов

// с программами на языке JavaScript

readFile(file); // Читает текстовый файл и возвращает его содержимое в виде строки

readUrl(url); // Читает текстовое содержимое по адресу URL и возвращает

// в виде строки

spawn(f); // Вызывает f или загружает и выполняет файл f

// в новом потоке выполнения

runCommand(cmd. // Запускает системную команду с нулем или более

[args...]) // аргументов командной строки

quit // Завершает работу Rhino

Как получить Rhino

Интерпретатор Rhino - свободное программное обеспечение, разработанное проектом Mozilla. Вы можете загрузить копию по адресуВерсия Rhino 1.7г2 реализует ECMAScript 3 и ряд расширений языка, описанных в главе 11. Rhino - достаточно зрелый программный продукт, и новые его версии появляются не так часто. На момент написания этих строк в репозитории с исходными текстами была доступна предварительная версия 1.7гЗ, включающая частичную реализацию стандарта ECMAScript 5.

Rhino распространяется в виде JAR-архива. Запускается он командой, как показано ниже:

java -jar rhino1_7R2/js.jar program.js

Если опустить параметр program.js, интерпретатор Rhino запустится в интерактивном режиме, который позволит вам опробовать простенькие программы и однострочные примеры.

**************************************************

Обратите внимание на функцию

print:
мы будем использовать ее в этом разделе вместо
console.log.
Интерпретатор Rhino представляет пакеты и классы Java как объекты JavaScript:

Поделиться:
Популярные книги

Адепт

Листратов Валерий
4. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адепт

Третий

INDIGO
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота

Шайтан Иван 4

Тен Эдуард
4. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
8.00
рейтинг книги
Шайтан Иван 4

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Сержант. Назад в СССР. Книга 4

Гаусс Максим
4. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сержант. Назад в СССР. Книга 4

Князь Целитель 6

Ткачев Андрей Юрьевич
6. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Князь Целитель 6

Патруль времени (сборник)

Уиндем Джон Паркс Лукас Бейнон Харрис
1985. Зарубежная фантастика
Фантастика:
научная фантастика
8.00
рейтинг книги
Патруль времени (сборник)

Гримуар темного лорда VII

Грехов Тимофей
7. Гримуар темного лорда
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VII

Ваше Сиятельство 3

Моури Эрли
3. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 3

Воронцов. Перезагрузка. Книга 5

Тарасов Ник
5. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 5

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Палач

Зайцев Сергей Григорьевич
4. Викс
Фантастика:
фэнтези
7.27
рейтинг книги
Палач

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия