- •Введение
- •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
Управление процессами во времени
Для организации периодического (через заданный интервал времени) выполнения некоторого выражения или функции служит метод setInterval() объекта window. Этот метод имеет следующий синтаксис:
setInterval(выражение, период [, язык])
Первый параметр — строкa, содержащая выражение (вызов функции). Второй параметр — целое число, указывающее временную задержку в миллисекундах перед последующими выполнениями выражения. Третий, необязательный параметр указывает язык, на котором написано выражение; по умолчанию — JavaScript.
Метод setInterval()возвращает число — идентификатор временного интервала, который может быть использован в дальнейшем для прекращения выполнения процесса, запущенного с помощью данного метода (метод clearInterval()).
Пусть, например, требуется, чтобы некоторая функция myfunc() выполнялась периодически через 0,5 с. Тогда в сценарии следует записать следующее выражение:
setInterval("myfunc()", 500)
В следующем примере показано, как передать методу setInterval() функцию с двумя параметрами, paraml и param2, значения которых определены в другом месте сценария:
var xstr = "myfunc(" + paraml + "," + param2 + " ) "
setInterval(xstr, 500)
Остановка запущенного временного процесса:
var myproc = setInterval("myfunc()", 100)
If (confirm("Прервать процесс ?"))
clearInterval (myproc)
Чтобы выполнить выражение с некоторой временной задержкой, используется метод setTimeout(). Этот метод объекта window имеет следующий синтаксис:
setTimeout(выражение, задержка[, язык])
Метод setTimeout() возвращает целое число — идентификатор временного интервала, который может быть использован в дальнейшем для отмены задержки выполнения (метод clearTimeout()).
Запуск функции myfunc() спустя 1 с:
setTimeout("myfunc()", 1000)
Работа с Cookie
Для хранения небольших объемов информации на диске компьютера пользователя в браузере предусмотрен так называемый механизм cookie. Обычно он используется для хранения имени пользователя и пароля, который вводится в поле формы защищенного веб-сайта, а также информации о предыдущем посещении сайта.
Данные в cookie-файлах организованы в виде записей.
Функция writeCookie() позволяет создать или обновить cookie-запись:
function writeCookie(name, value, expires, path, domain, secure){
/* запись cookie */
document.cookie =
name + "=" + escape(value) +
((expires) ? ":expires=" + expires.toGMTString() : "") +
((path) ? ":path=" + path : "") +
((domain) ? ":domain=" + domain : "") +
((secure) ? ":secure" : "")
}
Запись данных в cookie-файл заключается в присвоении строки, содержащей cookie-данные, свойству document.cookie. Запись непосредственно в файл выполняется при завершении работы браузера.
Эта функция принимает следующие параметры:
• name — строка, содержащая имя cookie-записи (обязательный параметр);
• value — строка, содержащая значение cookie (обязательный параметр);
• expires —срок хранения cookie-записи (объект Date); если отсутствует, то после завершения работы браузера cookie-запись удаляется;
• path — строка, содержащая путь cookie-записи; если не указан, то используется путь вызванного документа (текущая папка на сайте);
• domain — строка, содержащая домен нужной cookie-записи (имя хоста сервера, например, rambler.ru); если не указан, то используется домен вызванного документа;
• secure — логическое значение, определяющее необходимость использования безопасного HTTP-соединения (HTTPS). Если атрибут secure не установлен, cookie-информация может передаваться через любое соединение.
Если две и более cookie-записи (до 20) соответствуют одному и тому же домену, то в JavaScript они все равно представляются одной строкой и разграничиваются точкой с запятой и пробелом.
Рассмотрим функцию readCookie(name), читающую cookie-данные, соответствующие имени записи name, которое передается этой функции в качестве параметра:
function readCookie(name) { //чтение cookie-данных
var xname = name + "="
var xlen = xname.length
var den = document.cookie.length
var i = О
while(i < xlen){
var j = i + xlen
if (document.cookie.substring(i, j) == xname)
return getCookieVal(j)
i = document.cookie.indexOf(" ",1) + 1
if (i == 0) break
}
return null
}
Параметры функции substring — позиции начала и конца подстроки.
Функция readCookie(name) возвращает значение cookie-записи с именем name либо возвращает null, если такая запись не найдена. В теле этой функции использована еще одна, вспомогательная функция getCookieVal(j), возвращающая декодированное значение cookie-данных. Декодирование производится с помощью встроенной функции unescape(), поскольку cookie-запись должна представлять собой кодированную строку, полученную путем обработки встроенной функцией escape(). Код этой функции приведен ниже:
function getCookieVal(n) {
/* вспомогательная функция, вызываемая из readCookie() */
var endstr = document.cookie.indexOf(";", n)
if (endstr == -1)
endstr = document.cookie.length
return unescape(document.cookie.substring(n,
endstr))
}