Программирование: Java и Basic

         

Программирование мобильных телефонов на Java

Рынок мобильных телефонов - это, пожалуй, самый быстроразвивающийся сегмент рынка. Несколько лет назад мобильный телефон был чем-то дорогим и недосягаемым. Оплата за связь была астрономической. Но времена меняются, связь подешевела, мобильные телефоны продаются на каждом углу и наличие телефона у человека можно уже сравнить с наличием обычных наручных часов.
Обилие разнообразных моделей телефонов создает на этом рынке большую конкуренцию. Множество производителей стараются включить в телефоны как можно больше различных функций. Присутствием в телефоне адресной книги, органайзера, будильника и даже счетчика калорий уже никого не удивишь, и в какой-то момент времени возник вопрос, а чем же еще можно оборудовать телефон? Самым идеальным решением этого вопроса могла стать возможность загрузки в телефон программ сторонних производителей. Не секрет, что основная масса телефонов работает на основе прошивки, поэтому загрузка программ в телефон не возможна. Чтобы такая возможность появилась, производителям надо было бы решить ряд сложных вопросов. Во-первых - это язык программирования, на котором будут писаться программы для телефонов и, соответственно,, поддержка этого языка самим телефоном. Второе - это аппаратная архитектура мобильных телефонов, которая сильно ограничена в своих системных ресурсах, а это процессор, память, графический интерфейс. Улучшение архитектуры неизменно ведет к увеличению стоимости телефона, поэтому идеальной в этом случае стала платформа Java 2 Micro Edition, созданная компанией Sun Microsystems.

Введение
Платформа Java 2 ME состоит из виртуальной Java машины, языка программирования Java и огромного количества библиотек, облегчающих работу программиста. Язык программирования Java работает на основе интерпретации, поэтому для работы программ написанных на этом языке необходима виртуальная Java машина, встроенная в устройство, на котором планируется запускать Java программы. Наличие виртуальной Java машины в мобильном телефоне означает, что производитель поддерживает технологию Java. В данный момент практически все производители имеют поддержку Java технологии, что позволяет писать любые программы на этом языке и загружать их в телефон.

Устройство мобильных телефонов
Прежде чем приступить к изучению особенностей программирования мобильных телефонов на Java 2 ME, необходимо познакомиться с общей схемой устройства телефона. Сейчас на рынке мобильных телефонов присутствует множество как мелких, так и крупных производителей мобильных телефонов, предлагающих широкий ассортимент продукции. По цене и по своим функциональным признакам имеющиеся устройства , можно условно разделить на три категории.



Платформа Java 2 Micro Edition
История языка программирования Java насчитывает более десяти лет. Вначале, при создании Java, планировалось использовать этот язык для программирования микроконтроллеров бытовых устройств. Поэтому язык Java, тогда он, правда, имел другое название, изначально создавался независимым от архитектуры, компактным и безопасным, что в последствии сыграло решающую роль в его широком распространении. Однако, в тот момент язык программирования Java не смог обрести популярности.

Средства разработки мобильных приложений
Прежде чем приступить к инсталляции SUN ONE Studio 4 Mobile Edition и J2ME Wireless Toolkit 2.1, необходимо установить набор инструментальных средств Java 2 SDK, SE vl.4.2_03 (Software Development Toolkit Standard Edition). Это последняя на данный момент версия библиотеки, предоставляющая программные средства для создания приложений на Java. В состав этой библиотеки также входит Java 2 Runtime Environment, SE vl.4.2_03, которая необходима для работы приложений написанных на Java.

Телефонные эмуляторы
Интегрированные средства разработки приложений для мобильных телефонов рассмотренные в предыдущей главе имеют в своем составе несколько эмуляторов мобильных устройств несуществующих марок телефонов. Эмулятор телефона -это приложение, программно эмулирующее работу реального телефона, учитывая все технические характеристики этого устройства. Большинство производителей мобильных телефонов имеют в своем арсенале наборы инструментальных средств для программирования телефонов называемых SDK (Software Developer Kit) и множество встраиваемых модулей для эмуляции определенных моделей.

Механизм работы приложений Java 2 ME
В предыдущих двух главах вашему вниманию были представлены две среды программирования мобильных приложений и большое количество разнообразных телефонных эмуляторов. Полностью был разобран весь процесс установки этих средств, а так же режимы создания, компиляции кода и просмотр получившегося приложения на эмуляторе. Выберите себе понравившуюся среду разработки или работайте с теми средствами, к которым привыкли. Мы больше не будем отвлекаться на процесс написания кода, компиляции и запуска приложения на эмуляторе. Предшествующие две главы дали исчерпывающую информацию по этому поводу.

Классы пользовательского интерфейса
В Java 2 ME имеется пакет javax.microedition.lcdui, определенный для классов пользовательского интерфейса. Как уже отмечалось в главе 5, классы пользовательского интерфейса разделены на высокоуровневый и низкоуровневый интерфейсы. В этой главе будут последовательно рассмотрены все классы высокоуровневого пользовательского интерфейса. Каждый из разделов содержит информацию об одном конкретном классе, предоставляющем ряд возможностей в оформлении интерфейса пользователя. Используя возможности этих классов, вы сможете создавать в приложении списки, группы элементов, загружать в программу изображения, использовать бегущую строку, назначать шрифт текста и многое другое.

Программирование графики
Высокоуровневые классы, изученные в главе 6, дают возможность создавать пользовательский интерфейс приложения. По сути, эти классы выполнены в виде шаблонов, используя которые вы мoжете создавать списки, формы, шрифт, группы элементов, бегущие строки. Но использование таких классов-шаблонов несколько упрощает интерфейс программы, лишая возможности использования графики в программах на Java 2 ME. Иногда в приложении необходимо нарисовать таблицу, линию, квадрат, то есть воспользоваться графикой для создания насыщенной и красочной программы.

Техника создания игр
Рынок мобильных телефонов развирается стремительными темпами. Все больше телефонов имеют поддержку технологии Java. Веянье игровой индустрии захватило и мобильные телефоны, поэтому платформа Java 2 ME позиционируется в большей степени как игровая платформа Для мобильных телефонов. При разработке игр под профиль MIDP 1.0 программист сталкивается с массой проблем в виде написания большого количества собственных классов для создания игрового процесса, рисование графики, уровней и так далее.

Мобильная мультимедиа-библиотека
Воспроизведение звуков в играх создает более насыщенную- атмосферу. Хорошая звуковая дорожка к игре - это 30-40% успеха! Но, к сожалению, в мобильных играх, нет возможности воспроизведения мощной полноценной звуковой дорожки, как в компьютерных или приставочных играх, в виду ограничения системных ресурсов телефона. Поэтому, в основном, все звучание в играх сводится к воспроизведению так называемых тональных звуков. Каждый тональный звук соответствует определенной ноте, выстроив необходимую последовательность нот для воспроизведения можно получить определенную звуковую дорожку.

Основы языка Java
Это приложение не претендует на роль полного руководства по языку Java (Ява), но данного материала будет достаточно для дальнейшего изучения книги. Предлагаемая к рассмотрению в этом разделе информация содержит основы языка Java и ориентирована на неподготовленного читателя. Также нужно иметь в виду, что обучение языку Java будет происходить в соответствии с контекстом книги, а именно, всей той части языка Java, необходимой для программирования мобильных устройств.

Справочник по Java 2 Micro Edition
В этом приложении содержится исчерпывающий справочный материал по всем пакетам, интерфейсам, классам, конструкторам классов и константам платформы Java 2 Micro Edition. Справочник рассматривает все пакеты, имеющиеся в составе платформы Java 2 ME. Каждый пакет содержит множество интерфейсов, классов, конструкторов и констант. Для всех имеющихся компонентов каждого пакета дается краткая характеристика, на основании которой вам будет очень легко сориентироваться в создании приложений для платформы Java 2 Micro Edition.

Платформа программирования J2ME для портативных устройств

В структуре данной книги отсутствуют специфические подробности по инструментальным средствам разработки на J2ME, предлагаемым другими производителями. В соответствии с подходом данной книги как учебного пособия, я всего лишь знакомлю вас с инструментарием компании «Sun Microsystems» для беспроводной работы J2ME Wireless Toolkit, который является образцовым инструментарием разработки на J2ME. Он предоставляется бесплатно компанией «Sun Microsystems» и доступен на Web-сайте Java Developer Connection. Таким образом, вы можете познакомиться со средой разработки на J2ME и эмулятором и создавать и тестировать практически применимые приложения.

Введение
Производители оборудования часто предоставляют свои собственные инструменты разработки, которые сходны с инструментарием J2ME Wireless Toolkit компании «Sun». Кроме того, другие компании-производители программного обеспечения предлагают инструменты разработки на J2ME. В этой книге не описываются эти инструменты, поскольку они не добавляют ничего нового к теории и практике того, как проектировать и разрабатывать приложения на J2ME.

Определение платформы Java для портативных устройств
Конфигурация J2ME определяет минимальную Java-платформу для семейства устройств. Все члены данного семейства имеют сходные требования к памяти и производительности. Конфигурация является на самом деле спецификацией, которая определяет доступные ресурсы системного уровня, такие, как набор свойств языка Java, характеристики и свойства имеющейся виртуальной машины и минимальные библиотеки Java, которые поддерживаются.

Проектирование и кодирование
Я сначала создаю директорию под названием HelloWorld, что является названием примера нашего первого приложения, под директорией apps/, предназначенной для установки инструментария для работы с беспроводными устройствами. Эта директория является корневой для вашего нового проекта. Проект - это организованное объединение ресурсов - исходного кода, файлов ресурсов, откомпилированных файлов, - специфических для одного или более связанных приложений.

Жизненный цикл выполнения приложения
Запуск эмулятора. Вы увидите появившееся окно, которое имитирует интерфейс устройства. Если вы используете J2MEWTK версии 1.0.2, вы заметите, что эмулятор просто выполняет приложение HelloWorld, потому что это единственное приложение, присутствующее в наборе. На рисунке 3.1 показано главное окно выполнения этого MID-лета. Однако, если у вас J2MEWTK версии 1.0.3, вы увидите список выбора из всех MID-летов, даже если он у вас один.

Oбpaбoткa кoмaнд
Высокоуровневый API MIDP поддерживает обработку событий с помощью использования команд. Команда представляет из себя действие пользователя - например, что-то, что пользователь делает на экране, к примеру, нажимает функциональную клавишу. Событие - это проявление результата действия. События могут представлять собой вызов команды в ответ на действие пользователя.

Иерархия Компонентов пользовательского интерфейса MIDP
Вы знаете, что класс Displayable определяет природу основы любого компонента, который может быть отображен, и что класс Screen определяет базовую абстракцию пользовательского интерфейса MIDP - экран. Класс Screen является первым Displayable, который вы видели, a Form был первым конкретным типом используемого экрана.

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

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

Модель организации сетей в MIDP
В MIDP, как и в J2SE, потоки ввода-вывода являются наиважнейшим механизмом, доступным приложениям, для чтения и записи потоков данных. Как J2SE, так и J2ME имеют пакет java.io, который содержит эти классы потоков. Кроме того, MIDP имеет пакет javax.microedition.io, который поддерживает сетевую работу и коммуникации в приложениях MIDP. Этот пакет отличается от пакета java.net J2SE, который определяет поддержку сетевой работы на данной платформе.

Региональные настройки и локализация
Региональная настройка представляет собой определенный географический, лингвистический и культурный контекст. Она описывает контекст, в котором работают интернационализированные приложения. Термин локализация относится к практике предоставления приложению возможности работать в контексте определенной региональной настройки. Слово локализация иногда сокращается как 11Оn, поскольку 10 букв опускаются между буквами l и n в этом слове. Разработчик локализует приложение для одной или нескольких региональных настроек после его интернационализации.

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

Среда беспроводного приложения
На уровне приложений внешние интерфейсы, программные интерфейсы и транспортные механизмы представляют один из видов описания системы. В подобном ракурсе рассмотрения заинтересованы разработчики приложений, которые должны знать, как получать доступ и как взаимодействовать со службами программного обеспечения системы.

Введение в JavaScript

Гипертекстовая информационная система состоит из множества информационных узлов, множества гипертекстовых связей, определенных на этих узлах и инструментах манипулирования узлами и связями. Технология World Wide Web - это технология ведения гипертекстовых распределенных систем в Internet, и, следовательно, она должна соответствовать общему определению таких систем. Это означает, что все перечисленные выше компоненты гипертекстовой системы должны быть и в Web.
Web, как гипертекстовую систему, можно рассматривать с двух точек зрения. Во-первых, как совокупность отображаемых страниц, связанных гипертекстовыми переходами (ссылками - контейнер ANCHOR). Во-вторых, как множество элементарных информационных объектов, составляющих отображаемые страницы (текст, графика, мобильный код и т.п.). В последнем случае множество гипертекстовых переходов страницы - это такой же информационный фрагмент, как и встроенная в текст картинка.
При втором подходе гипертекстовая сеть определяется на множестве элементарных информационных объектов самими HTML-страницами, которые и играют роль гипертекстовых связей. Этот подход более продуктивен с точки зрения построения отображаемых страниц "на лету" из готовых компонентов.

Понятие объектной модели применительно к JavaScript
JavaScript - это язык управления сценариями просмотра гипертекстовых страниц Web на стороне клиента. Если быть более точным, то JavaScript - это не только язык программирования на стороне клиента. Liveware, прародитель JavaScript, является средством подстановок на стороне сервера Netscape. Однако наибольшую популярность JavaScript обеспечило программирование на стороне клиента.

Поле статуса
Поле статуса — это первое, что начали использовать авторы HTML-страниц из арсенала JavaScript. Калькуляторы, игры, математические вычисления и другие элементы выглядели слишком искусственно. На их фоне бегущая строка в поле статуса была изюминкой, которая могла действительно привлечь внимание пользователей к Web-узлу. Постепенно ее популярность сошла на нет. Бегущие строки стали редкостью, но программирование поля статуса встречается на многих Web-узлах.

Контейнер FORM
Если рассматривать программирование на JavaScript в исторической перспективе, то первыми объектами, для которых были разработаны методы и свойства, стали поля форм. Обычно контейнер FORM и поля форм именованы

Объект Image
Наиболее зрелищные эффекты при программировании на JavaScript достигаются при работе с графикой. При этом в арсенале программиста не так уж много инструментов: встроенные в документ картинки, возможность генерации объекта Image, комбинирование картинок с гипертекстовыми ссылками и таблицами. Тем не менее обилие различных эффектов, которые достигаются этими нехитрыми средствами, впечатляет

Объект URL
Свойства объекта URL дают программисту возможность менять только часть URL – объекта (гипертекстовой ссылки, например). Наиболее интересно это выглядит в объекте Location , когда при изменении свойства происходит перезагрузка документа. Однако и при работе с обычными гипертекстовыми ссылками такая технология более предпочтительна, чем изменение всего URL целиком.

Типы и структуры данных
Как и любой другой язык программирования, JavaScript поддерживает встроенные типы и структуры данных. Все их многообразие подразделяется на: литералы и переменные; массивы, функции и объекты. При этом все они делятся на встроенные и определяемые программистом. Функции и объекты рассматриваются в разделах "Функции" и "Объекты". Поэтому здесь мы остановимся на литералах, переменных и массивах.

Клиентский JavaScript 1.3 Руководство

JavaScript это разработанный корпорацией Netscape межплатформенный объектно-ориентированный язык скриптинга (сценариев). Ядро JavaScript содержит набор основных объектов, таких как Array, Date и Math, и основной набор элементов языка, таких как операции, управляющие структуры и операторы. Ядро JavaScript может быть расширено путём предоставления дополнительных объектов; например:
* Клиентский JavaScript расширяет ядро языка за счёт объектов, управляющих браузером (Navigator или другой подобный web-браузер) и его Document Object Model (DOM). Например, клиентские расширения позволяют приложению размещать элементы на HTML-форме и отвечать на пользовательские события, такие как щелчок мышью, ввод данных в форму и навигация по страницам.
* Серверный JavaScript расширяет ядро языка за счёт объектов, имеющих отношение к работе JavaScript на сервере. Например, серверные расширения позволяют подключиться к реляционной БД, поддерживать непрерывность информации между вызовами приложения или работать с файлами на сервере.

Введение
JavaScript даёт Вам возможность создавать приложения, работающие в Internet. Клиентские приложения работают в браузере, таком как Netscape Navigator, а серверные приложения запускаются на сервере, таком как Netscape Enterprise Server. Используя JavaScript, Вы можете создавать динамические HTML-страницы, которые обрабатывают пользовательский ввод и работают с данными через использование специальных объектов, файлов и реляционных баз данных.

JavaScript. Обзор
JavaScript даёт Вам возможность создавать приложения, работающие в Internet. Клиентские приложения работают в браузере, таком как Netscape Navigator, а серверные приложения запускаются на сервере, таком как Netscape Enterprise Server. Используя JavaScript, Вы можете создавать динамические HTML-страницы, которые обрабатывают пользовательский ввод и работают с данными через использование специальных объектов, файлов и реляционных баз данных.

Значения, Переменные и Литералы
Этот сравнительно небольшой набор типов значений, или типов данных, даёт Вашим приложениям возможность выполнять различные функции. Отсутствует явное различие между целыми и реальными числами. Нет также типа данных date. Однако Вы может использовать объект Date и его методы для работы с датами.

Выражения и Операции
Выражение\expression это правильный набор литералов, переменных, операций и выражений, который вычисляется в единственное значение; значение может быть числом, строкой или логическим значением. Концептуально имеются выражения двух типов: присваивающие значение переменной, и те, которые просто имеют значение. Например, выражение x=7 присваивает переменной x значение 7. Это выражение вычисляется в 7. Такие выражения используют операции присвоения.

Регулярные Выражения
Использование функции-конструктора предоставляет компиляцию регулярного выражения на этапе прогона. Это делается, если известно, что патэрн регулярного выражения будет изменяться, или если Вы не знаете патэрн и получаете его из другого источника, такого как пользовательский ввод. После того как регулярное выражение определено, и если оно используется в скрипте и исходное значение изменяется, Вы можете использовать метод compile




Операторы
JavaScript поддерживает компактный набор операторов, который Вы можете использовать для реализации интерактивного поведения Web-страниц. В главе дан обзор этих операторов. В главе имеются следующие разделы, в которых дан краткий обзор каждого оператора: Условные операторы: if...else и switch Операторы циклов: for, while, do while, label, break и continue (label сам по себе не оператор цикла, но часто используется с этими операторами) Операторы манипулирования объектами: for...in и with Комментарии

Функции
Функции это фундаментальные конструкции JavaScript. Функция это процедура JavaScript - набор операторов, выполняющих специфическую задачу. Для использования функции Вы обязаны сначала определить её; затем Ваш скрипт может её вызвать.

Работа с Объектами
JavaScript разработан на основе простой объектной парадигмы. Объект это конструкция со свойствами, которые являются переменными JavaScript или другими объектами. Объект также может иметь ассоциированные с ним функции, которые известны как methods\методы объекта. Помимо предопределённых серверных и клиентских объектов Navigator'а, можно создавать пользовательские объекты.

Объектная Модель. Детали
JavaScript это язык на базе прототипов, а не на базе классов. Из-за этого в JavaScript менее очевидно, как создаётся иерархия объектов и происходит наследование свойств и их значений. В данной главе делается попытка прояснит этот вопрос.

Внедрение JavaScript в HTML
Вы можете встроить JavaScript в HTML-документ: как операторы и функции в тэге SCRIPT, специфицировав файл в качестве источника кода JavaScript, специфицировав выражения JavaScript как значения HTML-атрибута или как обработчики событий в некоторых HTML-тэгах (во основном - в элементах формы).

Обработка Событий
Приложения JavaScript в браузере Navigator широко используют механизм обработки событий. Events\События это акции, которые обычно возникают как результат некоторых действий пользователя. Например, щелчок по кнопке является событием, также как и изменение текста или перемещение мыши над гиперссылкой. Чтобы Ваш скрипт реагировал на события, Вы определяете event handlers\обработчики событий, такие как onChange и onClick.

Использование Объектов Navigator'а
В этой главе рассматриваются объекты JavaScript в Navigator'е и объясняется, как их использовать. Объекты клиентского JavaScript иногда называются объектами Navigator'а, чтобы отличить их от серверных или пользовательских объектов.

Использование Окон и Фрэймов
JavaScript позволяет создавать окна и фрэймы для представления HTML-содержимого. Объект window является объектом верхнего уровня в иерархии клиентского JavaScript; объект Frame похож на объект window, но соответствует "подокну" и создаётся тэгом FRAME в документе с тэгом FRAMESET.

Дополнительные Статьи
Вам, возможно, уже знакомы стандартные типы URL и так далее. В Navigator'е Вы можете использовать также URL типа javascript: для выполнения операторов JavaScript вместо загрузки документа. Вы просто используете строку, начинающуюся с javascript:, в качестве значения атрибута HREF тэгов anchor. Например, Вы можете определить такую гиперссылку для перезагрузки текущей страницы

Безопасность в JavaScript
JavaScript автоматически предотвращает доступ скриптов одного сервера к свойствам документов на других серверах. Это не даёт скриптам возможность получать закрытую информацию, такую как структура директорий или история пользовательских сессий. В данной главе рассматриваются модели безопасности/security models, имеющиеся в разных релизах JavaScript.

LiveConnect. Обзор
Служба LiveConnect по умолчанию включена в Navigator'е 1.1 и последующих версиях. Чтобы LiveConnect работала, должны быть включены Java и JavaScript. Для проверки этого выберите Preferences в меню Edit и просмотрите раздел Advanced.

Отображение Ошибок с Помощью Консоли JavaScript
Для открытия консоли JavaScript выполните одно из следующих действий. Консоль открывает новое окно. Введите в адресную строку такой URL.javascript: Выберите Open Page из меню File и введите следующий URL:javascript: Вставьте следующий код в HTML Вашей страницы:A HREF="javascript:"Open JavaScript console/A

Словарь
Здесь даны определения некоторых терминов, используемых в JavaScript

JavaScript

Существуют броузеры, не поддерживающие некоторых возможностей JavaScript. Поэтому, чтобы не возникало ситуаций, когда броузер пользователя не видит чего-либо в вашем документе, можно использовать свойства объекта Navigator: appName и appVersion, которые определяют имя и версию броузера. В зависимости от версии броузера можно осуществлять вызов того или иного документа.
Например, на платформах с 16-разрядной Windows обращение к функции eval() приводит к краху Netscape Navigator 2.0. Поэтому, если мы посмотрим , где используется эта функция, то в нем как раз анализируется имя и версия броузера.

Изменение фона документа
Первый пример - это часы, отображающие время загрузки страницы (т.е. момент вызова скрипта). Используются методы объекта Date (getHours, getMinutes) и графические файлы, отображающие полученное время (имена этих файлов соответствуют цифрам - 0-9).

Метод getTimezoneOffset
Возвращает смещение временной зоны в минутах относительно гринвичского меридиана.

Объект password
Изменен в Navigator 3.0. Текстовое поле в HTML форме, значение которого на экране отображается звездочками (*). Когда пользователь вводит текст в это поле, звездочки (*) скрывают введенное значение.

Основы программирования на JavaScript

В JavaScript строка является любым фрагментом текста. Как и многие другие объекты в JavaScript, строки можно определять несколькими различными способами:
var myString = 'Hello, World!'; var myString = new String('Hello, World!');
Первый метод используется наиболее часто. Второй метод применяется редко и только для гарантии, что получаемый объект является строкой. Например:
var n = 5; var s = new String(n*20);
В этом примере s будет строкой " 100". Если просто задать s как n*20, то s будет содержать число 100. Однако поскольку JavaScript является слабо типизированным языком, то эти различия не будут существенно влиять на то, что вы делаете.
Строковые объекты (var n = new String('Hello World')) технически являются в Internet Explorer более медленными при некоторых операциях, чем строковые литералы (var n = 'Hello World'). Однако это поведение совершенно противоположно в других браузерах. В любом браузере различие редко бывает настолько заметно, чтобы об этом беспокоиться.

Строки
Тот факт, что функции indexOf и lastIndexOf возвращают -1, если строка не существует, является очень полезным и позволяет использовать эти функции для достаточно распространенной задачи - проверки того, что одна строка существует внутри другой.

Изображение: Блок-схема документа
Изображение может помочь лучше понять отношения предок-потомок в этом коде. Необходимо также отметить атрибуты в некоторых из этих тегов. Например, тег TABLE (table border="0" cellspacing="2" cellpadding="5") имеет 3 заданых атрибута: border, cellspacing и cellpadding. При изменении DOM часто бывает необходимо изменить эти атрибуты. Можно, например, изменить атрибут SRC тега IMG, чтобы изменить выводимое изображение.

Объект Window
Положение окна на экране пользователя редко бывает необходимо, но два других свойства, location и opener, будут очень полезны. Свойство window.location выполняет две функции. Если изменить его с помощью JavaScript, например, window.location='htmlgoodies.com', то браузер будет перенаправлен на эту страницу. Чтение window.location выдает адрес текущего документа. Зачем это нужно знать?

Основы JavaScript
Почти каждый современный язык программирования имеет некоторый метод записи объектно-ориентированного (ОО) кода. Если вы знакомы с такими языками, как C, Java, VB, php или подобными, то должны быть знакомы и со структурой Class этих языков. Классы в этих языках позволяют быстро создавать объекты с одинаковыми свойствами и методами, не требуя при этом заново определять все эти свойства и методы. В терминах структур мы имеем классы, а внутри этих классов - функции и переменные, а внутри каждой из этих функций - дополнительные переменные.

Наследование
По сути наследование позволяет определить объекты "предки" и "потомки". Потомок наследует все свойства своего предка. Можно было создать, например, функцию "Animal", "Pet" или "Mammal". Обе функции Cat и Dog обладали бы многими свойствами функции предка Animal, и нам пришлось бы писать этот код один раз.

Создание объекта XMLHttp
При создании запроса AJAX прежде всего необходимо создать объект XMLHTTP. Netscape/Firefox, Opera и другие браузеры имеют этот объект встроенным. Internet Explorer использует ActiveXObject. Поэтому мы создадим одну функцию для работы со всеми этими браузерами

Синтаксические ошибки
JavaScript имеет два основных уровня обработки ошибок: синтаксические ошибки и ошибки времени выполнения. Синтаксические ошибки возникают до выполнения кода JavaScript, означая в основном, что код невозможно компилировать.

Стек
При вызове функции копия множества переменных, которые нужны ей для работы, сохраняется в памяти. Если функция вызывается рекурсивно, то другая копия всех этих переменных сохраняется в памяти, затем еще одна и т.д. Эти копии переменных сохраняются в так называемом стеке. Первая копия находится внизу, следующая поверх нее, и т.д. К сожалению, существует ограничение на размер стека. В большинстве браузеров этот предел определен где-то в районе 1000. Это означает, что для функции заливки сетка могла бы содержать до 1000 квадратов.

AJAX = Асинхронный JavaScript и XML
AJAX является сокращением от "Asynchronous JavaScript And XML" (Асинхронный JavaScript и XML). AJAX является не новым языком программирования, а просто новым способом создания Web-приложений, которые будут лучше, быстрее, и более интерактивными. AJAX использует JavaScript для отправки и получения данных при взаимодействии Web-браузера и Web-сервера.

Введение в XHTML
XHTML является сокращением от английского EXtensible HyperText Markup Language, что означает "Расширяемый язык разметки гипертекста". XHTML предназначен для замены HTML. XHTML почти совпадает с HTML 4.01. XHTML является более строгой и четкой версией языка HTML.

Сценарии JavaScript в активных страницах Web

Многие современные серверы Web являются активными или содержат активные страницы, которые взаимодействуют с пользователем. Описанные в только что упомянутом 29 томе программы CGI и приложения ISAPI позволяют создавать активные серверы Web, способные получать данные от удаленного пользователя, обрабатывать их и посылать результат обработки обратно в виде документа HTML. В качестве примера активных приложений, работающих на сервере Web, можно назвать чрезвычайно популярные счетчики посещений, гостевые книги, базы данных, доступные через Internet и так далее.
Что же касается активных страниц Web, то с их помощью также можно создавать диалоговые приложения, однако обработка введенных данных выполняется не на сервере, а на рабочей станции пользователя, то есть локально. Активными мы будем называть документы HTML, которые содержат в себе аплеты Java, а также программы, составленные на таких языках, как JavaScript и VBScript.

Семь вариаций на тему “Hello, world!”
Что касается аплетов и полноценных приложений Java, то им посвящены тома 30 и 32 “Библиотеки системного программиста”, которые называются “Создание приложений Java. Часть 1” и “Создание приложений Java. Часть 2”, соответственно. Размещая на страницах сервера Web аплеты Java, вы можете выполнять на рабочей станции достаточно сложную локальную обработку данных. Реализация такой обработки с помощью программ CGI или приложений ISAPI была бы затруднительной или вовсе невозможной.

Переключатель radio
Назначение параметров NAME, VALUE и CHECKED переключателя radio такое же как и назначение аналогичных параметров переключателя checkbox. Отличие заключается в том, что все переключатели radio, принадлежащие к одной группе, должны иметь одинаковые имена, определенные параметром NAME. Что же касается переключателей checkbox, то если их несколько, то все они должны называться по-разному

Справочник по Javascript

Синтаксис и команды JavaScript можно разделить на несколько категорий в зависимости от их назначения и использования. Объекты представляют собой блоки, из которых строится JavaScript. Они применяются для возвращения значений и изменения состояния форм, страниц, броузера и определенных программистом переменных. Объекты можно сопоставить с существительными. Кошка, автомобиль, дом, компьютер, форма - все это существительные, они могут быть представлены как объекты (см. раздел «Объекты»). Мы используем свойства для того, чтобы различать объекты одного класса - например, всех объектов типа кошка. Свойства сравнимы с прилагательными и ссылаются на уникальные для каждого экземпляра объекта особенности.

Abs
В случае кошки это может быть вес, цвет, местоположение, текущее занятие, количество блох и т. п. (см. раздел «Свойства»). Методы служат для передачи сообщений объекту и иногда для изменения состояния его свойств. Например, один метод может быть использован для изменения текущего занятия кошки от еды ко сну, а другой - для уменьшения количества блох

UserAgent
Синтаксис возвращаемого значения такой же, как у свойства appVersion, дополненный кодовым именем приложения броузера. codename/releaseNumber(platform; country)

Ядро JavaScript 1.5. Руководство по использованию

Выражение это правильный набор литералов, переменных, операторов и выражений, который вычисляется в одно значение; это значение может быть числом, строкой или логическим значением.
Концептуально есть выражения двух видов: присваивающие значение переменной и просто имеющие значение. Например, выражение x = 7 это выражение, в котором x получает значение 7. Это выражение вычисляется в 7. Такие выражения используют операции присвоения. С другой стороны, выражение 3 + 4 просто вычисляется в 7; оно не выполняет присвоения значения. Операции, используемые в таких выражениях, называются просто операциями.

Выражения и Операции
В этом разделе рассмотрены операции и содержится информация о приоритете выполнения операций. В JavaScript имеются следующие типы операций: В JavaScript имеются бинарные и унарные операции. Для выполнения бинарной операции необходимы два операнда: один до знака операции и один - после

Операторы
Блок операторов используется для группирования операторов. Блок ограничен фигурными скобками: {statement1 statement2 . . .statementn}

Самоучитель по JavaScript

Самоучитель состоит из 25 уроков, в каждом из которых по следующей схеме объясняется новое понятие: сначала небольшое вступление и сам скрипт, затем эффект, который он производит, после этого подробный разбор скрипта вплоть до каждой запятой и задание для самостоятельной работы. В конце каждого урока ссылка на страницу с ответом.
Имейте в виду, что в дальнейшем слово «я» будет относиться к американскому автору Джо Бернсу, за исключением слов, выделенных красным цветом.

Basic вводный курс

Представляемая книга содержит опыт, накопленный автором за время работы преподавателем информатики в школе. Десять лет назад мы учили школьников работать на программируемых калькуляторах, сегодня — на самой современной вычислительной технике. Но, в любом случае, убеждение, что преподавание основ программирования в школе необходимо, осталось до сих пор, хотя и претерпело какие-то изменения.
Алгоритмизация мышления позволяет человеку выживать в бушующем море информации, формирует системный подход к любым жизненным ситуациям.
Кроме того, за этот десятилетний период работы в школе автору очень редко приходилось встречать хорошие задачники по программированию, которые были бы насыщены разнообразными примерами. А еще, полагая, что Бейсик сейчас преподается в большинстве своем школьникам и, по опыту зная, насколько им интереснее "живые", не сухие задания, автор попытался вести разговор с читателем на понятном им языке, включая иногда и какие-то сленговые компьютерные словечки.

Введение
В предисловии вашему вниманию предлагается ряд сведений о языках программирования, в т. ч. и о языке Бейсик. В первой части вы найдете большой набор авторских и творчески обработанных задач, охватывающих все основные разделы программирования на языке начинающих программистов — Бейсик. Задачи сгруппированы по темам и, в основном, расположены по степени возрастания сложности.
Во второй части вы сможете найти решения некоторых задач с необходимыми пояснениями, а в приложениях самые любознательные отыщут много интересных дополнительных сведений об изучаемом языке и представлении информации в компьютере.

Язык Бейсик
Прежде чем непосредственно приступить к программированию, надо научиться пользоваться средой предлагаемого к изучению языка. А поскольку она на русском языке, то это не составит большого труда. Итак, нам предстоит узнать: где взять русский Бейсик; как его запустить и начать работу; как вводить текст программы в окне редактора; как запускать программы на выполнение; как сохранить программу на диске в виде файла и открыть уже существующую для просмотра и редактирования

Алгоритмы, графика, символы и строки
Все, что бы мы ни делали, будь то на компьютере, или в жизни, чаще всего преследует какую-либо цель. И не всегда эта цель достигается. Но если мы как следует сформулируем для себя же лаемый результат, потом продумаем четкий план его достижения, то, по крайней мере, на компьютере цель будет достигнута (в жизни, к сожалению, не все так однозначно). Так вот, четкая, ясная и однозначная последовательность действий, приводящая к достижению результата, называется алгоритмом. Примеры алгоритмов из жизни — это и правила перехода улицы, рецепт пирога, инструкция по изготовлению ядерной бомбы в домашних условиях и т. д.

Массивы, подпрограммы
Мы подобрались к одной из самых сложных, на мой взгляд, тем в программировании для начинающих. Именно из-за массивов я остался на второй год в институте (потому что тогда в школах еще этим не занимались). Теперь, когда я объясняю эту тему своим ученикам, то стараюсь сделать это как можно более доходчиво, пусть не совсем научными терминами, но понятно, поскольку без представления, что такое массив, дорога в программирование будет закрыта.

Задания повышенной трудности
Если вы добрались до сих слов, дорогой читатель, то дальше, полагаю, вы сможете идти один, гордо неся знамя российского программирования над миром (ведь только в США 80% разработчиков программного обеспечения и математиков — наши соотечественники).

Решения

Дополнительные возможности
Здесь хотелось бы рассказать о возможностях Бейсика, позволяющих писать более красивые программы, работать с которыми пользователю было бы приятно, и в душе он поминал бы вас хорошими словами

Приложение
Здесь мне хочется коротко представить наиболее часто используемые операторы Бейсика, снабдив их краткими комментариями (табл. П1—П10). Полная справка по языку имеется в его оболочке, где вы легко можете найти полные сведения о том или ином операторе с наглядными примерами.