Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Листинг 2.5. Файл chapter2/StatusScrol/StatusScroll. html




<HTML>

<HEAD>

<Т1ТLЕ>Авторський компакт-диск</Т1ТLЕ>

<SCRIPT LANGUAGE="JavaScript">

<!--

var szMsg = "You are welcome to our Web site http://www.glasnet.ru/~frolov";

var nSpace = 100;

var nIteration = 0;

function sscroll()

{

var cmd = "sscroll()";

var szOut = "";

var szText = "";

for (i=0; i < nSpace; i++)

{

szText += " ";

}

szText += szMsg;

szOut = szText.substring(nIteration, nSpace + nIteration);

window.status = szOut;

nlteration++;

if(nIteration > nSpace + szMsg.length)

{

nIteration = 0;

}

timer = window.setTimeout(cmd, 50);

}

//-->

</SCRIPT>

</HEAD>

<BODY BGCOLOR=white>

<Н1>Новий випуск авторського CD</H1>

<SCRIPT LANGUAGE="JavaScript">

<!--

sscroll();

//-->

</SCRIPT>

<P>Перший випуск нашого компакт-диска вже з'явився в продажі. Інформацію про цей, а також про такий випуск ви знайдете на нашому сервері Web, адреса якого відображається у вікні стани браузера

</BODY>

</HTML>

 

У області заголовка документа визначені глобальні перемінні szMsg, nSpace і nIteration, а також функцію sscroll.

Перемінна szMsg инициализируется текстовим повідомленням, що буде безупинно переміщатися в рядку стани браузера. Значення, записане в перемінну nSpace, визначає кількість прогалин, що буде додано до рядка повідомлення зліва перед початком операції зсуву. І нарешті, перемінна nIteration служить лічильником зсувів для функції sscroll.

Функція sscroll визивається перший разом у тілі документа:

 

<BODY BGCOLOR=white>

<Н1>Новий випуск авторського CD</H1>

<SCRIPT LANGUAGE="JavaScript">

<!--

sscroll();

//-->

</SCRIPT>

</BODY>

 

Надалі функція sscroll організує за допомогою методу setTimeout свій власний виклик, відкладений у часу на 50 мс, і завершує роботу. Проте через зазначений час функція буде викликана знову, і це буде продовжуватися доти, поки документ HTML, що містить сценарій, залишається завантаженим у вікно браузера.

Спрощено структура функції sscroll показана нижче:

 

function sscroll ()

{

var cmd = "sscroll()";

...

// Відображення повідомлення в рядку стани браузера

...

// Зсув повідомлення вліво на одну позицію

...

timer = window. setTimeout(cmd, 50);

}

 

Після відображення повідомлення в рядку стани і зсуву цього повідомлення вліво на одну позицію функція sscroll викликає метод setTimeout, предавая йому через перший параметр перемінну з командою, що підлягає виконанню, а через другий - час затримки, по прошествии який дану команду потрібно буде виконати.

У якості виконуваної команди методу setTimeout зазначений виклик функції sscroll.

У функції sscroll визначені три локальні перемінні. Перемінна cmd береже команду виклику функції sscroll. У перемінної szOut підготовляється текст, відображуваний у рядку стани браузера при кожному виклику функції sscroll.

Текстова перемінна szText використовується як робоча. У ній формується повідомлення для висновка. Спочатку в перемінну szText записується nSpace прогалин, а потім добавляється рядок szMsg:

 

for (i=0; i < nSpace; i++)

{

szText += " ";

}

szText += szMsg;

 

Для того щоб при кожному виклику функції sscroll повідомлення відображалося зі зсувом на одну позицію, витягається з перемінної szText подстрока. Витяг подстроки виконується за допомогою методу substring, визначеного в умонтованому класі текстових рядків String. Отримана подстрока записується у властивість status об'єкта window і в такий спосіб відображається в рядку стани:

 

szOut = szText. substring(nIteration, nSpace + nIteration);

window. status = szOut;

 

Перший параметр методу substring визначає початкову позицію подстроки усередині рядка, а другий - кінцеву.

Після відображення повідомлення функція sscroll збільшує значення глобального лічильника nIteration на одиницю:

 

nIteration++;

 

Коли в результаті зсуву повідомлення цілком іде з рядка стана, лічильник nIteration знову встановлюється в нульове значення:

 

if(nIteration > nSpace + szMsg.length)

{

nIteration = 0;

}

 

Загальна довжина що зрушується рядка тут обчислюється як сума значення nSpace (кількість початкових прогалин) і довжини повідомлення szMsg. Остання знаходиться за допомогою методу length, визначеного в умонтованому класі String.

2.4.4. Обмеження часу реакції користувача

Іноді користувач, попавши на сторінку Web, довго не може зрозуміти, що потрібно робити. Можна створити сценарій, що відображає в цій ситуації документ HTML із подсказкой. Зрозуміло, підсказування повинне відображатися тільки в тому випадку, якщо користувач не виконує над сторінкою ніяких дій протягом достатньо тривалого часу.

Для виміру час, протягом якого користувач неактивний, допоможуть методи setTimeout і clearTimeout. Перший із цих методів уже використовувався в попередньому сценарії для організації періодичного виконання функції.

Коли користувач завантажує документ HTML, вихідний текст якого поданий у листинге 2.6, на екрані з'являється форма з полемо, призначеним для запровадження текстового рядка пароля.

Відразу після завантаження документа у вікно браузера сценарій запускає таймер, викликаючи метод setTimeout із цього ж класу. Таймер установлюється на 10 с. Саме за цей час треба ввести пароль і натиснути кнопку Enter Password у формі, показаної на мал. 2.13, щоб одержати доступ до сторінки.

Якщо почекати з запровадженням пароля або ввести неправильний пароль, сценарій завантажує у вікно браузера динамічно сформований документ HTML із повідомленням про заборону доступу.

Тільки в тому випадку, якщо пароль уведений правильно і протягом 10 із, на екрані з'являється повідомлення про надання користувачу доступу і посилання, за допомогою якої можна перейти до перегляду головної сторінки нашого серверу Web.

Тепер роздивимося вихідний текст сценарію JavaScript, умонтованого в документ HTML (листинг 2.6).

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 411; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.