Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

var output = new FileOutputStream(file); // Записать в файл

// Создать входной буфер в виде массива размером 4 Кбайта

var buffer = java.lang.reflect.Array.newlnstance(java.lang.Byte.TYPE,4096);

var num;

while((num=input.read(buffer)) != -1) { // Читать до признака EOF

output.write(buffer, 0, num); // Записать байты в файл

bar.value += num; // Обновить индикатор

}

output.close; // Закрыть потоки по завершении

input.close;

}

catch(e) { // Если что-то пошло не так, вывести ошибку в индикаторе

if (bar) {

bar.indeterminate = false; // Остановить анимацию

bar.string = e.toString; // Заменить имя файла сообщением

}

}

}

12.2. Асинхронный ввод/вывод в интерпретаторе Node

Node - это быстрый интерпретатор JavaScript, написанный на языке C++, включающий средства доступа к низкоуровневым интерфейсам Unix для работы с процессами, файлами, сетевыми сокетами и так далее, а также к клиентским и серверным интерфейсам реализации протокола HTTP. За исключением нескольких синхронных методов, имеющих специальные имена, все остальные инструменты интерпретатора Node доступа к интерфейсам Unix являются асинхронными, и по умолчанию программы, выполняемые под управлением Node, никогда не блокируются, что обеспечивает им хорошую масштабируемость и позволяет эффективно справляться с высокой нагрузкой. Поскольку прикладные программные интерфейсы являются асинхронными, интерпретатор Node опирается на использование обработчиков событий, которые часто реализуются с использованием вложенных функций и замыканий. [26]

26

Клиентский JavaScript также является асинхронным и опирается на использование событий, поэтому вам будет проще понять примеры, которые приводятся в этом разделе, после того как вы прочтете вторую часть книги и познакомитесь с особенностями создания клиентских программ на языке JavaScript.

Этот раздел освещает некоторые наиболее важные инструменты и события, имеющиеся в составе Node, но это описание ни в коем случае нельзя считать полным. Полное описание Node можно найти в электронной документации по адресу http://nodejs.org/api/.

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

Node - это свободное программное обеспечение, которое можно загрузить по адресуНа момент написания этих строк интерпретатор все еще активно разрабатывался и скомпилированные дистрибутивы не были доступны, однако вы можете собрать собственную копию интерпретатора из исходных текстов. Примеры в этом разделе опробовались под управлением версии Node 0.4. Прикладной интерфейс интерпретатора еще не зафиксирован, однако основные функции, демонстрируемые в этом разделе, едва ли сильно изменятся в будущем.

Интерпретатор Node построен на основе механизма V8 JavaScript, разработанного компанией Google. Версия Node 0.4 использует версию V8 3.1, которая реализует все особенности ECMAScript 5, за исключением строгого режима.

После загрузки, компиляции и установки Node вы сможете запускать программы, написанные для этого интерпретатора, как показано ниже:

node program.js

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

Знакомство с интерпретатором Rhino мы начали с функций print и load. Интерпретатор Node имеет похожие инструменты, но с другими именами:

// Подобно броузерам, для вывода отладочной информации Node определяет

// функцию console.log.

console.log("Hello Node"); // Выведет отладочную информацию в консоль

// Вместо load в нем используется функция require.

// Она загружает и выполняет (только один) указанный модуль и возвращает объект,

// содержащий имена, экспортируемые модулем.

var fs = require("fs"); // Загрузит модуль ”fs" и вернет объект с его API

Интерпретатор Node реализует в глобальном объекте все стандартные конструкторы, свойства и функции, предусмотренные стандартом ECMAScript 5. Однако в дополнение к этому он также поддерживает клиентские функции для работы с таймером:

setTimeout, setlnterval, clearTimeout и clearlnterval:

//Вывести приветствие через одну секунду.

setTimeout(function { console.log( "Привет, Мир!"); }, 1000);

Эти глобальные клиентские функции рассматриваются в разделе 14.1. Реализация Node совместима с реализациями интерпретаторов в веб-броузерах.

Интерпретатор Node также определяет и другие глобальные компоненты в пространстве имен process. Ниже перечислены некоторые из свойств этого объекта:

  • Читать дальше
  • 1
  • ...
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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