Управление просмотром страниц Web-узла. JavaScript - shikardos.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Управление просмотром страниц Web-узла. JavaScript - страница №1/1

Управление просмотром страниц Web-узла. JavaScript


Современные гипертекстовые информационные системы условно можно представить в виде совокупности нескольких компонентов: системы хранения гипертекстовых объектов, системы отображения гипертекстовых объектов, системы подготовки гипертекстовых объектов и системы программирования просмотра совокупности гипертекстовых объектов. С этой точки зрения технология World Wide Web только к 1996 году получила законченный, функционально полный вид. Первыми были разработаны системы хранения и просмотра (1989-1991 г.г.), которые продолжают развиваться и в настоящее время. После 1990 года стали появляться первые системы подготовки документов. Наконец, в 1995 году были предложены первые языки управления сценариями просмотра.

Программирование процедуры просмотра гипертекстовой базы данных не является изобретением Netscape, Microsoft или Sun. Практически все локальные гипертекстовые системы в той или иной степени имеют программные средства манипулирования гипертекстовыми объектами. В ряде случаев вся гипертекстовая база данных может быть представлена как одна большая программа, в которой гипертекстовые узлы - это программные модули, а связи между ними - это передача управления от одного модуля другому.

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

Программы просмотра гипертекстовых страниц традиционно называют скриптами (scripts) по аналогии с исполняемыми файлами, написанными для командных интерпретаторов типа sh. Собственно как это было и раньше в локальных системах, в программировании просмотра гипертекстовых документов World Wide Web существуют два подхода: создание интерпретируемых программой просмотра скриптов или компиляция байт-кода. Первый подход следует традиции World Wide Web, согласно которой для разработки гипертекстовой страницы нужен только обычный текстовый редактор и сам гипертекстовый документ должен легко читаться человеком-оператором. Второй подход позволяет повысить эффективность исполнения программы и защищенность кода от несанкционированных модификаций. Как первый, так и второй способ опираются на объектно-ориентированный подход к программированию. По поводу байт-кодов или мобильных кодов, как их еще называют, написано в контексте технологии программирования Java достаточно много, поэтому сосредоточим свое внимание на скриптах, а точнее на скриптах, написанных на языке JavaScript.


Сегодня Всемирная сеть - это среда информационного обмена для миллионов людей. Они размещают текст, видео, звук, и информацию, и все более и более, они усложняют свои страницы, делая их интерактивными в сети. JavaScript - это новый язык программирования, используемый в составе страниц HTML для увеличения функциональности и возможностей взаимодействия с пользователями. Он был разработан фирмой Netscape в сотруднечестве с Sun Microsystems на базе языка Sun's Java .С помощью JavaScript на Web-странице можно сделать то, что невозможно сделать стандартными тегами HTML. Скрипты выполняются в результате наступления каких-либо событий, инициированных действиями пользователя. Создание Web- документов, вклучающих программы на JavaScript, требует наличее текстового редактора и подходящего браузера. Некоторые просмоторщики включают в себе встроенные редакторы, поэтому необходимость во внешнем редакторе отпадает.

Несмотря на отсутствие прямой связи с языком Java, JavaScript может обращаться к внешним свойствам и методам Java- апплетов, встроенных в страницу HTML. Разница сводится к тому, что апплеты существуют вне браузера, в то время как программы JavaScript могут работать только внутри браузера. На первой взгляд кажется, что найти информацию по JavaScript несложно. Сначала создается впечатление, что ее можно увидеть везде: на сервере Natscape, в виде электронных руководств и примеров, во многих других местах. Тем не менее разыскать информацию об объектах, операторах, цветах и всем прочем в одном источнике, чтобы она была всегда под рукой, трудно.


Языковые понятия

JavaScript распознает следующие типы величин:

  • Числа, типа 42 или 3.14159

  • Логические (Булевы), значения true или false

  • Строки, типа "Howdy!"

  • Пустой указатель, специальное ключевое слово, обозначающее нулевое значение

Это относительно малый набор типов значений, или типов данных, которые позволяют вам выполнять функции в ваших приложениях. Не существует никакого явного различия между целыми числами и реально-оцененными числа. И при этом не существует явного типа данных date в Navigator. Однако, объект date и связанные встроенные функции позволяют вам обрабатывать данные.

Объекты и функции - фундаментальные элементы в языке. Вы можете думать об объектах как об именованных контейнерах для значений, и о функциях как о процедурах, которые ваше приложение может выполнять.


Преобразование типов данных


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

var answer = 42

А позже, вы можете присвоить той же переменной, например следующее значение:

answer = "Thanks for all the fish..."

Или рассмотрим следующее выражения:

//пример

var oneString="1"

var oneInt=1

var oneConcatenate=oneString+oneInt

// В результате получается "11"

var oneAddition=oneInt+oneString

// В результате получается 2

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

Поскольку JavaScript свободно типизированный язык, то это не вызовет ошибки.

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

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

x = "The answer is " + 42

y = 42 + " is the answer."

Первое утверждение будет строка "The answer is - 42 ". Второе утверждение возвращает строку " 42 - The answer is".

JavaScript предоставляет несколько специальных функций для управления строковыми и числовыми значениями:


  • eval вычисляет строку, представляющая любые JavaScript литералы или переменные, преобразовывая ее в число.

  • parseInt преобразовывает строку в целое число в указанном основании системы счисления, если возможно.

  • parseFloat преобразовывает строку в число с плавающей точкой, если возможно.

Переменные


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

Идентификатор JavaScript или имя должны начаться с символа или символом подчеркивания ("_"); последовательность символов также могут быть цифры (0-9). Символы включают знаки с "A" до "Z" (верхнего регистра) и знаки с "a" до "z" (нижний регистр). JavaScript учитывает регистр.

Некоторые примеры допустимых имен:


  • Number_hits

  • temp99

  • _name

Область действия переменных


Область действия переменных - то, где вы можете использовать их в скрипте. В JavaScript, существует две области действия, которые переменные могут иметь:

  • Глобальная: Вы можете использовать переменную где-нибудь в приложении.

  • Локальная: Вы можете использовать переменную внутри текущей функции.

Чтобы объявить локальную переменную внутри функция, используйте ключевое слово var, например:

var total = 0

Чтобы объявить глобальную переменную, объявите переменную назначения, которая просто присваивает значение переменной (или в функции или вне функции), например:

total = 0

Лучше всего объявлять глобальные переменные в начале вашего скрипта, так, чтобы функции наследовали переменную и ее значение.

Литералы


Литералы - способ, которым вы представляете значения в JavaScript. Установленные значения, которые вы буквально (literally) представляете в вашем источнике, и - не переменные. Примеры литералов включают:

42


3.14159

"Быть или не быть"


Целые числа (Integers)


Целыми называют числа вида 1, 164, 102390. Они могут быть выражены в десятичном (по основанию 10), шестнадцатеричном (по основанию 16), или восьмеричном (по основанию 8) представлении. Десятичный литерал целого числа состоит из последовательности цифр без ввода 0 (ноля).

Целое число может быть выражено в восьмеричном или шестнадцатеричном скорее чем в десятиричное. Шестнадцатиричные числа включают цифры 0-9 и буквы a-f и A-F, в JavaScript они записываются с комбинацией символов 0x или 0X (ноль-x) перед числом. Восьмиричные числа включают только цифры 0-7 и в JavaScript записываются с ведущего нуля.

Например, десятичное число 23 представляется в шестнадцатеричном виде как 0x17 и в восмеричном как 027

Литералы с плавающей точкой


Литералы с плавающей точкой представляют собой дробные части целых чисел и должны включать в себя по крайней мере одну цифру и десятичную точку либо символ экспоненты ("е" или "Е"). В следующих примерах приведены различные варианты представления одного и того же числа:

  • 3.1415927

  • 31415927е-7

  • .31415927Е1

Логические Литералы


Логические значения имеют только два значения, истинна (true) или ложь (false). В некоторых реализациях языка JavaScript 0 (false) и 1 (true) не могут быть использованы в качестве логических значений.

Строки


Строковые литералы - ноль или большее количество знаков, расположенные в двойных (") или одинарных (') кавычках. Строки должен быть разделены кавычками того же самого типа; то есть или обе одинарные кавычки или двойные кавычки. Использование обратной двойной черты "\" позволяет вставлять в строку специальные символы. Приведем примеры строковых литералов:

  • "Blah"

  • 'Blah'

  • "1234"

  • "one line \n another line"

Специальные символы


Вы можете использовать следующие специальные символы в строковых литаралах JavaScript:

  • \b указывает возврат на один символ.

  • \f указывает перевод страницы.

  • \n указывает новую цифру(знак) линии.

  • \r указывает возврат каретки.

  • \t указывает символ табуляции.

Символы Выхода


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

document.write("\"Вам следует принять ванну\",-

сказал доктор и наморщил нос.")

выводит


"Вам следует принять ванну", - сказал доктор и наморщил нос.

Выражения


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

x = 7


Является выражением, которое приписывает x значение 7. Это выражение вычисляет 7. Такие выражения используют операторы присвоения. С другой стороны, выражение

3 + 4


Просто вычисляет 7; оно не выполняет присвоения. Операторы используемые в таких выражениях, упоминаются просто как операторы.

JavaScript имеет следующие выражения:

  • Арифметические: например, вычисляет число

  • Строковые: вычисляют строку символов, например "Джон" или "234"

  • Логические: вычисляют true(истина) или false(ложь)

Язык JavaScript включает в себя значение null для переменных, которым не присвоено никакое значение. Любая попытка использовать переменную, имеющую значение null, в вычисляемом выражении приводит к ошибке, за исключением случая присваивания значения null переменной, например timerID = null.

Условные Выражения


Условное выражение может иметь одну из двух значений, основанных на условии. Синтаксис

(Условие)? Val1: val2

Если условие истинно, то выражение имеет значение val1, иначе имеет значение val2.

Например,

status = (age >= 18) ? "adult" : "minor"

Это утверждение присваивает значение "adult" переменной status, если age равно 18 или больше чем 18. Иначе, приписывает значение "minor" переменной status.

Операторы Присваивания (=, + =, - =, * =, / =)


Оператор присваивает значение левому операнду, основанному на значении правого операнда. Основной оператор присваивания равенство (=), который присваивает значение правого операнда левому операнду. То есть x = y приписывает значение y к x.

Другие операторы - стенография для стандартных арифметических действий выглядят следующим образом:



  • Сложение, конкатенация:X + = y означает x = x + y

  • Вычитание:x - = y означает x = x - y

  • Умножение:X * = y означает x = x * y

  • Деление:X / = y означает x = x / y

  • Вычисление остатка от деления: X % = y означает x = x % y

Операторы


JavaScript имеет арифметические, строковые и логические операторы. Имеет, и бинарные и унарные операторы. Бинарный оператор требует двух операндов, унарный перед оператором и одним после оператора:

Operand1 operator operand2

Например, 3 + 4 or x * y

Унарный оператор требует одного операнда, до или после оператора:

operator operand

Или

operand operator



Например x ++ или ++ x.

Арифметические Операторы


Арифметические операторы принимают численные значения (литералы или переменные) как их операнды и возвращают числовое значение.

Стандартные Арифметические Операторы


Стандарт Арифметические операторы - сложение (+), вычитание (-), умножение (*), и деление (/). Эти операторы работают стандартным способом.

Модуль (%)


Оператор модуля используется следующим образом:
Var1 % var2

Оператор модуля возвращает первый операнд по модулю второго операнд, то есть var1 по модулю var2, где var1 и var2 - переменные. Функция по модулю - это остаточный член от деления var1 на var2. Например, 12 % 5 возвращается 2.


Инкримент (++)


Оператор инкримент используется следующим образом:
var++ или ++var

Этот оператор увеличивает его операнд и возвращает значение. Если используемый постфикс, с оператором после операнда (например x ++), то возвращает значение перед увеличением. Если используемый префикс с оператором перед операндом (например, ++ x), то возвращает значение после увеличения.

Например, если x - 3, то утверждение

y = x ++

Увеличивает x до 4 и присваивает y равное 3.

Если x - 3, то утверждение

y = ++ x

Увеличивает x до 4 и присваивает y равное 4.


Декремент (--)


Оператор декремента используется следующим образом:

var-- или --var

Этот оператор уменьшает его операнд и возвращает значение. Если используемый постфикс (например x--) то возвращает значение перед уменьшением. Если используемый префикс (например, --x), то возвращает значение после уменьшения.

Например, если x - 3, то утверждение

y = x --

Уменьшает x до 2 и присваивает y равное 3.

Если x - 3, то утверждение

y = -- x

Уменьшает x до 2 и присваивает y равное 2.

Унарное вычитание (-)


Унарный оператор вычитания должен предшествовать его операнду. Например,

x = -x


Вычитает значение x; например, если бы x был равен 3, то стал бы равным -3.

Побитовые Операторы


Побитовые операторы воздействуют на операнды как набор битов (0 и 1). Например, десятичное число 9 имеет двоичное представление 1001. Побитовые операторы выполняют действия на таких двоичных представлениях, но они возвращают стандартное JavaScript численное значение.

Логические операторы


Логические операторы принимают логические (Булевы) значения как операнды. Они возвращают логическое значение. Логические значения true(истина) и false(ложь).

И (&&)


Использование: expr1 && Expr2

Логический "и" возвращает оператор true, если оба логических выражения и expr1 и expr2 true. Иначе, возвращается false.


Или (||)


Использование: expr1 || expr2

Логический "или" возвращает оператор true, если хотя бы одно из логических выражений или expr1 или expr2 true. Если и expr1 и expr2 false, то это возвращается false.


Нет (!)


Использование:! Expr

Логический оператор "нет" - унарный оператор, который отрицает выражение операнда expr. То есть если expr true, то возвращает false, и если expr false, то возвращает true.


Вычисление...


Так как логические выражения вычисляются слева направо, то они проверены для возможного вычисления "короткой цепи", используя следующее правило:

  • false && Какая - нибудь - короткая цепь, оцененная как false.

  • true || Какая - нибудь - короткая цепь, оцененная как true.

Логическое правило гарантирует, что эти вычисления будут всегда правильными.

Операторы Сравнения (==, >, >, =<, <=,!=)


Оператор сравнения сравнивает его операнды и возвращает логическое значение, основанное на том, является ли сравнение true или false. Операнды могут быть численными или строковыми значениями. Когда используется на строковых значениях, то сравнения основывается на стандартном лексикографическом порядке.

Операторы:



  • Равно (==): возвращает true, если операнды равны.

  • Не равно (!=): возвращает true, если операнды не равны.

  • Больше чем (>): возвращает true, если левый операнд больше чем правый операнд. Пример: x>y возвращает true, если x больше чем y.

  • Больше или равно чем (>=): возвращает true, если левый операнд больше чем или равен правому операнду. Пример: x>=y возвращает true, если x больше или равен чем y.

  • Меньше чем (<): возвращает true, если левый операнд - меньше чем правый операнд. Пример: x

  • Меньше или равно чем (< =): возвращает true, если левый операнд - меньше или равен правому операнду. Пример: x<= y возвращает true, если x - меньше или равен y.

Операторы Строки


В дополнение к операторам сравнения, которые могут использоваться на значениях строк, оператор конкатенации (+), суммирует две строки вместе, возвращая другую строку, которая является соединением двух строк операнда. Например,

"my " + "string"

Возвращает строку

"my string"

Оператор происвоения += может также использоваться, чтобы конкатенировать строки. Например, если переменнай mystring - строка, которая имеет значение "alpha", затем выражение

Mystring + = "bet"

Вычисляет как "alphabet" и приписывает это значение mystring.

Старшинство Оператора


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

Старшинство операторов, от самого низкого до самого высокого будут следующие:

Запятая,

Присвоение =+=-=*=/=%=<<=>>=>>>=&=^=|=

Выбор по условию ? :

Логическое ИЛИ ||

Логическое И &&

Неравенство !=

Равенство/Неравенство == !=

Сравнение <<=>> =

Сложение/вычитание + -

Умножите/деление * / %

Отрицание/дополнение/унарный минус/инкримент/дикримент ! ~ - ++ --

Вызов, передача параметров () [].




Встраивание в HTML-документ


Для встраивания скриптов в тело HTML-документа используется контейнер SCRIPT. Не все программы просмотра способны распознавать и исполнять скрипты, поэтому само тело скрипта помещается в контейнер комментария. Для определенности рассмотрим небольшой пример:

Пример 2.2

Author: Pavel Khramtsov

Date: March 5, 1996

-->




Registration













ISTC.

Project RADLEG(#245)

RRC "Kurchatov Institute"


Dec, 25, 1995










Registration Form




......


Текст страницы.

.....


























В данном примере в заголовок документа (контейнер HEAD) включен контейнер SCRIPT. До недавнего времени атрибут LANGUAGE в этом контейнере не являлся обязательным. Но с момента появления VBSCRIPT смысл в указании типа языка появился - Navigator не понимает скриптов на других языках. Отсутствие атрибута может привести к ошибкам при отображении гипертекстовых страниц.

Далее в тексте страницы определен комментарий, в который включен текст скрипта. Начинается комментарий со строки:

The JavaScript Functions Definition

и кончается строкой:

// The end of JavaScript Functions Definition -->

Внутри контейнера скрипта определены две функции пользователя: help_win() и main_menu(). Смысл этих функций достаточно прозрачен. Help_win() предназначена для организации контекстно зависимого help, а main_menu() осуществляет допуск пользователя к главному меню Website. Обе функции используют один и тот же метод open (встроенную в JavaScript функцию, которая определена над объектом window) для того, чтобы открыть новое окно Netscape Navigator и загрузить в него гипертекстовые документы. При этом функция main_menu порождает стандартное окно (с кнопочками, иконками и т.п.), а функция help_win() окно без стандартных атрибутов. У этого окна имеются только линейки прокрутки (scroll bars).

Вызов функций осуществляется после нажатия на соответствующую кнопку, которые определены в HTML-форме help_call. Таким образом выполнение функций будет осуществлено только в том случае, если произойдет событие, описанное атрибутом onClick в контейнере INPUT соответствующего поля формы.



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