- •Введение
- •1. Язык html
- •1.1. Информационная система сети Интернет
- •1.2. Язык html
- •Использование специальных символов в нтмl документах
- •Дескрипторы связи
- •Команда вставки графики
- •Команда гипертекстовой ссылки
- •Относительные и абсолютные адреса файлов
- •1.3. Расширения html
- •2. Язык JavaScript
- •2.1. Особенности и назначение языка JavaScript
- •2.2.Основы языка JavaScript Типы данных
- •Переменные и оператор присвоения
- •Var имя_переменной
- •Область действия переменных
- •Операторы
- •Приоритет операторов в выражении
- •Функции
- •Встроенные функции
- •Пользовательские функции
- •Сценарии
- •Обработка событий
- •Встроенные объекты
- •Объект String (Строка)
- •Объект Array (Массив)
- •Копирование массива
- •Объект Math (Математика)
- •Объект Date (Дата)
- •Объектная модель JavaScript
- •Клиентская сторона
- •Серверная часть
- •Доступ к объектам
- •X.Src /* строка url, например, file:///с:/Мои%20документы/pict.Jpg */
- •Создание фреймов
- •Динамический html
- •Динамическое изменение элементов документа
- •Использование метода write()
- •Изменение значений атрибутов элементов
- •Управление процессами во времени
- •If (confirm("Прервать процесс ?"))
- •Работа с Cookie
- •Обработка данных форм
- •Работа с файловой системой и реестром Windows
- •Создание объекта файловой системы
- •Запуск приложений
- •Работа с реестром
- •Глоссарий
- •Императивное (операторное) программирование
- •Функциональное программирование
- •Объектно-ориентированное программирование
- •Модули и раздельная компиляция
- •Библиографический список
- •394026 Воронеж, Московский просп., 14
Создание объекта файловой системы
Чтобы получить доступ к файловой системе, необходимо создать для нее объект FileSystemObject (экземпляр FSO). Если программа на JavaScript будет выполняться браузером как сценарий в HTML-документе, то для создания FSO можно использовать только следующее выражение:
var fso = new ActiveXObject ("Scripting.FileSystemObject")
После того как объект файловой системы создан, можно применить методы для создания и удаления папок и файлов, копирования и перемещения файлов, а также получения информации о дисках, папках и файлах. Существуют и другие методы, такие как открытие и закрытие файла, запись данных в файл и т. п. Общий синтаксис таков:
- ссылка на объект файловой системы (FSO) для доступа к ее объектам
var fso = new ActiveXObject ("Scripting.FileSystemObject")
- методы доступа к существующим объектам и методы создания новых объектов
var x = fso.методОбъекта(параметры)
- свойства и методы конкретного объекта — диска, папки или файла
var у = х.свойство(параметры)
var z = х.метод(параметры)
Открыть файл можно осуществить следующими способами:
var fso = new ActiveXObject
("Scripting.FileSystemObject")
var myfile = fso.OpenTextFile(filepath, mode)
var fso = new ActiveXObject
("Scripting.FileSystemObject")
var fileobj = fso.GetFile(filepath)
var myfile = fileobj.OpenAsTextStream(mode)
Здесь filepath — имя файла, возможно, с указанием пути к нему; mode — режим открытия файла: 1 — только для чтения; 2 — для записи; 8 — для добавления.
Приведём несколько примеров записи и чтения данных.
var filepath = "С:\\Мои документы\\TextFile.htm"
var fso = new ActiveXObject
("Scripting.FileSystemObject")
var myfile = fso.CreateTextFile(filepath, true)
// создание в режиме записи
myf11e.WriteLine("<html>")
myfile.WriteLine("<hl>Привeт всем!</h1>")
myfile.Write("<script> alert('Какое-нибудь
сообщение')</script>")
myfile.WriteBlankLines(2) // две пустые строки
myfile.Close() // закрываем файл
var fso = new ActiveXObject
("Scripting.FileSystemObject")
var myfile = fso.OpenTextFile(filepath,8)
/* открываем в режиме добавления */
myfile.Write("</html>") // дописываем
myfile.Close() // закрываем файл
var fso = new ActiveXObject
("Scripting.FileSystemObject")
var myfile = fso.OpenTextFile(filepath,1)
// открываем в режиме чтения
myfile.Read(6) // читаем 6 байтов: "<html>"
myfile.SkipLine() // пропускаем строку
var x = myfile.ReadLine() /* читаем третью
строку:"<h1>Привет Bceм!</hl> */
Запуск приложений
Для запуска приложений служит метод Run() объекта Wscript.Shell. Командная строка запуска приложения (обычно это просто полное имя файла программы) передается методу в качестве строкового параметра.
Примеры
var Myshell = new ActiveXObject("WScript.Shell")
Myshe11.Run("winword.exe
C:\\My\\mydocument.dope")
Myshell.Run("C:\\MyFolder\\myprogram.exe")
Работа с реестром
Программа JavaScript с помощью методов Windows Scripting Host может организовать невидимую пользователем работу с реестром (если он не заблокировал выполнение сценариев). Это методы объекта Wscript.Shell, входящего в состав WSH:
• RegRead() — возвращает запись реестра или значение параметра;
• RegWrite() — создает новую запись в реестре или изменяет значение параметра уже существующей записи;
• RegDelete() — удаляет запись реестра или параметр.
Применение этих методов имеет следующий синтаксис:
var Myshell = new ActiveXObject("WScript.Shell")
Myshell.метод(параметры)
Метод RegWrite() принимает в качестве параметра строку, содержащую имя раздела реестра, за которым указывается имя параметра. Все элементы имени раздела разделяются двойными обратными слэшами. Например, в строке "hkey_current_user\\Myreg\\myparam" последний элемент myparam является именем параметра, а не раздела реестра.
Примеры
var Myshell = new ActiveXObject("WScript.Shell")
/* Создание подраздела Myreg в разделе hkey_current_user и присвоение параметру по умолчанию значения "значение": */
Mуshell.RegWrite("hkey_current_user\\Myreg\\", "значение")
/* Создание в разделе hkey_current_user\ Myreg строкового параметра myparaml и присвоение ему значения "некоторая строка": */
Myshell.RegWrite("hkey_current_user\\Myreg\\myparaml", "некоторая строка")
/* Создание в разделе hkey_current_user\ Myreg двоичного параметра myparam2 и присвоение ему значения 5: */
Myshell.RegWrite("hkey_current_user\\Myreg\\myparam2", 5, "reg_binary")
/* Создание в разделе hkey_current_user\ Myreg параметра myparam3 типа dword и присвоение ему значения 3: */
Myshell.RegWrite("hkey_current_user\\Myreg\\myparam3", 3, "reg_dword")
Вместо полных имен корневых разделов реестра можно использовать их сокращенные обозначения. Например, вместо hkey_current_user можно писать hkcu.
Пример. Запись установки стартовой страницы
var Myshell = new ActiveXObject("WScript.Shell")
var mystartpage = http://www.myweb.ru /* нужная страница */
/* Проверяем, какая веб-страница является начальной: */
startpage = Myshell.RegWrite
("hkcu\\software\\Microsoft\\Internet
ExplorerUMainUStart Page")
if (startpage != mystartpage) // если другая
Myshell.RegWrite("hkcu\\software\\Microsoft\\
InternetExplorer\\Main\\StartPage", mystartpage)
Аналогичным образом можно создать записи в реестре, используемые для запуска приложений!
ЗАКЛЮЧЕНИЕ
JAVASCRIPT И ДРУГИЕ
СЦЕНАРНЫЕ ЯЗЫКИ
Многие популярные сценарные языки создавались не для Web-программирования. Perl и Python разрабатывались для написания сценариев в ОС UNIX, Rexx — в ОС фирмы IBM. Появление HTML и Web-серверов стимулировали развитие сценарных языков в сторону реализации серверной части Web-систем. Рассмотрим коротко основные черты сценарных языков.
XHTML
Фактически роль XHTML заключается в попытке предотвратить написание программистами некорректного HTML-кода за счет применения жестких правил XML к HTML. Для написания XHTML-кода используются те же дескрипторы, атрибуты и каскадные списки стилей, что и в HTML. Помимо внесения некоторых строгих правил кодирования в HTML, XHTML является расширяемым (отсюда и буква X в XHTML, от extensible — расширяемый) и модульным. Расширяемый означает, что язык XHTML позволяет, как производителям браузеров (в первую очередь), так и программистам, расширять HTML за счет добавления новых дескрипторов. Модульный предполагает, что производители браузеров смогут уменьшить размеры их браузеров за счет исключения кода для XHTML-элементов, которые не требуются для их платформ.
Таким образом, если вы соблюдаете следующие правила, вы скоро научитесь писать правильный XHTML-код:
• XHTML-документы должны быть правильно построены.
• Элементы должны быть вложенными и не должны перекрываться.
• Все имена элементов и атрибутов должны быть написаны с использованием символов нижнего регистра.
• Открытые дескрипторы контейнеров должны быть закрыты, а пустые дескрипторы должны иметь терминатор.
• XHTML-документы должны начинаться с объявления DOCTYPE.
• Значения всех атрибутов должны заключаться в кавычки.
• XHTML-документы в разделе заголовка должны содержать элемент <title>.
При посещении Web-страниц в сети Internet заголовок каждой страницы выводится в строке заголовка окна браузера. Web-браузеры используют заголовки в качестве имен закладок. Слайдеры (автоматизированные программы поиска в Web) используют текст заголовка страницы для включения ее в поисковые машины.
Python
Python активно используется в качестве языка программирования сценариев административного управления (в частности, он играет роль основного системного средства составления сценариев во многих дистрибутивных пакетах Linux) и в Web (в частности, существует и относительно распространен модуль Python для популярного Web-сервера Apache). Язык адаптирован для множества платформ.
Особенность языка — использование отступов для выделения блоков программы и вложенности операторов.
Ruby
Язык Ruby разрабатывался как альтернатива Perl (как недостаточно мощному) и Python (как языку, в котором непоследовательно реализовано объектно-ориентированное программирование). Как образец реализации ООП был избран Smalltalk, где все структуры языка (включая классы) — объекты.
Ruby ориентирован скорее на разработку сценариев, чем на подготовку полномасштабных компилируемых программных модулей. Он несет на себе отчетливый отпечаток «практического» языка, созданного для использования в реальных системах, а не ради иллюстрации академических концепций и принципов программирования. В нём реализованы итераторы, обработчики исключений, простая процедура разработки дополнительных средств на Си и др. Ruby не обеспечивает множественного наследования, заменяя его концепцией модулей, язык не предъявляет жестких требований к объявлению переменных.
Ruby содержит хорошо подобранный набор возможностей: списки (выполняющие также роль массивов) и хэш_таблицы (словари), роль списков с элементами произвольного типа в Ruby играют так называемые «контейнеры».
Perl
Perl (Practical Extraction and Report Language, «практический язык извлечений и отчетов») создан в 1986 г. Ларри Воллом (Larry Wall), системным администратором NASA. Первоначально он создавался как командный язык для UNIX. С появлением Web этот язык для формирования отчетов и обработки текстов обрел второе рождение. Синтаксис и набор операторов (значительно урезанный) заимствованы у Си. Отличительная особенность Perl — наличие мощных механизмов работы со списками и хэш-таблицами, позволяющими реализовать обработку текстов. Впоследствии Perl был адаптирован для работы с Интернетом. В настоящее время это один из самых распространенных Web-языков. Perl знаменит не столько сам по себе, сколько благодаря библиотеке CPAN (www.cpan.org), в которой содержатся самые разнообразные модули, вплоть до нейросетевых решений.
Perl —язык, который не имеет полноценных процедур. В процедурах Perl нет параметров (точнее, параметры необходимо извлекать из специальной переменной $_). Этот язык не имеет объектно-ориентированных механизмов. Однако достаточно мощный механизм модулей (так называемых «пакетов») позволяет в какой-то мере компенсировать этот недостаток. Наследование в Perl можно организовать с использованием указателей.
РНР
РНР (первоначально Personal Home Page – персональная домашняя страница, с 1997 г. – РНР Hypertext Processor) представляет собой гипертекстовый препроцессор, который позволяет генерировать Web-содержимое "на лету". Операторы, предназначенные для обработки PHP-процессором, хранятся в отдельном файле или внедряются в HTML-код Web-страницы.
При запросе Web-браузером PHP-страницы сервером выполняются PHP-операторы, содержащиеся между начальным (<?php или <?) и конечным (?>) дескрипторами PHP-сценария. PHP-процессор записывает результаты выполнения PHP-операторов и весь текст, находящийся вне дескрипторов PHP-сценария, на Web-страницу (которая будет передана Web-браузеру).
В то время как клиентские языки сценариев (например, JavaScript) выполняются Web-браузером, РНР представляет собой серверный язык, т.е. РНР-сценарий, внедренный на Web-страницу, выполняется Web-сервером (а не Web-браузером). Большинство PHP-кода может выполняться под управлением различных операционных систем.
Особенность использования РНР заключается в том, что Web-браузер не работает с РНР-операторами, внедренными на Web-страницу. В отличие от JavaScript, VBScript, JScript или других клиентских языков сценариев, при написании РНР-сценариев не нужно беспокоиться о поддержке Web-браузером языка РНР. Для создания страницы, использующей РНР, необходимо просто вставить на страницу PHP-команды, которые должны выполняться в HTML-коде страницы, и присвоить файлу Web-страницы имя с расширением, связанным с РНР-процессором (например, .php).
РНР стал главным серверным языком сценариев для многих Web-серверов по следующим причинам.
• Язык РНР позволяет создавать сложные Web-сайты практически для любой платформы.
• Язык РНР обладает простым объектно-ориентированным синтаксисом. Конструкции языка РНР знакомы многим разработчикам, работающим с процедурными или объектно-ориентированными языками программирования (С, C + +, Java, Pascal или Visual Basic).
• Программы на РНР очень быстро выполняются. PHP-страницы могут компилироваться, оптимизироваться и кэшироваться в памяти, что позволяет серверу одновременно обрабатывать большое количество РНР-страниц без существенного снижения производительности.
Благодаря наличию сотен стандартных функций РНР в состоянии решить практически любую задачу, которая может придти в голову разработчику. В нем имеется обширная поддержка создания графики и операций с ней, математических вычислений, средств электронной коммерции и таких популярных технологий, как XML (Extensible Markup Language), ODBC (Open Database Connectivity) и Macromedia Shockwave.
Пример.
<html>
<body>
<?php phpinfo () ;?>
</body>
</html>
Приведенный выше HTML-код на Web-сервере в файле с именем test.php вернетWeb-браузеру информацию о текущей версии процессора, конфигурации РНР, среде и переменных.