Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaScript_рус_29.doc
Скачиваний:
6
Добавлен:
27.08.2019
Размер:
685.57 Кб
Скачать

2.4. Примеры программ JavaScript-сценариев

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

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

В первом способе имеется возможность отрабатывать Web-приложения автономно. Во вторым – подготовленные Web-приложения включаются непосредственно в HTML-документы. В третьим - обеспечивается интерактивная связь Web-документа с Web-приложением путем применения формы для ввода данных пользователем и вывода результатов.

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

Пример 2.1. Web-приложение «Массив.html» со скриптами типичных операций с массивами.

Обработка массивов данных является одной из наиболее распространенных операций в профессиональной работе экономистов. Ниже иллюстрируется листинг документа “Массив” со скриптами, обеспечивающими выполнение следующих действий: ввод массива, объявление переменных, вывод конкретного элемента массива (в первой части), определение минимального и максимального элементов (во второй части). В скриптах применены объекты, их методы и свойства.

<SCRIPT>

document.write(”Массив чисел arr()”+”<BR>”);

document.write(”Часть 1”+”<BR>”);

var k,m;

var arr;

arr=[3,4,7,20,3,7,5];

document.write(arr+”<BR>”);

k=arr[5];

document.write(”Элемент k=”+k+”<BR>”+”<BR>”);

</SCRIPT>

<SCRIPT>

document.write(”Часть 2”+”<BR>”);

m=Math.min(3,4,7,20,3,7,5);

max=Math.max(3,4,7,20,3,7,5);

document.write(”Минимальный элемент m=”+m+”<BR>”);

document.write(”Максимальный элемент max=”+max+”<BR>”);

</SCRIPT>.

Чтобы проверить результат выполнения данной программы, наберите (или скопируйте) текст листинга «Массив.html» в окно редактора Блокнот и сохраните файл в папке «Примеры_JS», после чего откройте файл, и он автоматически выполнится.

Примечание: Это следует делать и в следующих примерах!

Результат выполнения программы браузером будет таким:

Часть 1

Массив чисел arr() 3,4,7,20,3,7,5

Элемент k=7

Часть 2

Минимальный элемент m=3

Максимальный элемент max=20

Пример 2.2. Web-приложение «mas_photo.html» со скриптом (сценарием) показа изображений. Особенностью этого примера является то, что изображения представляются массивом, а для их просмотра применен оператор for.

Файлы изображений предварительно необходимо собрать в одной папке, например “frames”. Файлам с изображениями целесообразно присвоить имена: 1.gif, 2.gif, 3.gif, 4.gif, 5.gif, 6.gif, 7.gif. Эту папку нужно разместить в папку «Примеры_JS».

Скрипт HTML-документа (файл с именем mas_photo.html) следующий:

<SCRIPT>

document.write(”Массив фотографий arr”+”<BR>”);

var arr;

arr=[];

arr[0]='<IMG id=”animate” src=”frames/1.gif” height=100 width=75>';

arr[1]='<IMG id=”animate” src=”frames/2.gif” height=100 width=75>';

arr[2]='<IMG id=”animate” src=”frames/3.gif” height=100 width=75>';

arr[3]='<IMG id=”animate” src=”frames/4.gif” height=100 width=75>';

arr[4]='<IMG id=”animate” src=”frames/5.gif” height=100 width=75>';

arr[5]='<IMG id=”animate” src=”frames/6.gif” height=100 width=75>';

arr[6]='<IMG id=”animate” src=”frames/7.gif” height=100 width=75>';

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

{

document.write(arr[i]);

}

</SCRIPT>

Результатом выполнения этого скрипта будет коллекция изображений (рис. 2.1), размещенных в один ряд.

Рис. 2.1. Коллекция изображений

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

Пример 2.3. Файл динамического HTML-документа «animate.html» со сценарием изменения демонстрации изображений во времени.

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

*<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset //EN"

"http://www.w3.org/html4/frameset.dtd">

<html>

<head>

<title> Страница с анимациями </title>

</head>

<body>

<p><font color="red"><h1> <b><center> Я захватываюсь изображениями с анимациями </center></b></h1></font></P>

<SCRIPT type="text/javascript">

//Назначаем функцию, которая действует по таймеру, и изменяет изображение

window.setInterval(new_frame,2000);

var inc=1;

var curFrame=1;

var maxFrame=7;

// Функция изменения кадров

function new_frame(){

//Показ текущего кадра

animate.src="frames/"+curFrame+".gif";

curFrame+=inc;

if (curFrame>maxFrame){

// Начинаем просмотр в обратном порядке

curFrame=maxFrame;

inc=-1;

}

else

if (curFrame==0)

{

// Начинаем просмотр в прямом порядке

curFrame=1;

inc=1;

}

}

</SCRIPT>

<img id="animate" src="frames/1.gif">

</body>

</html>.

Количество кадров изображений задается переменной maxFrame. Предполагается, что все кадры помещены в папку frames. Фрагмент одного из рисунков, воспроизводимых в окне браузер, показан на рис. 2.2.

Рис.2.2. Выбранное изображение

Используя соответствующие теги, можно динамично изменять фон страницы.

В приведенном примере используется объект window для установления интервала показа изображений (в милисекундах).

Пример 2.4. Листинг файла «Скрипт_ Do_While» с оператором цикла do_while в скрипті. В этом примере вычисляет значение функции y=x*x при изменении х с заданным значением шага.

<script>

document.write("Таблица значений функции"+"<br>");

var x,y;

x=0;

document.write(”x”+"______"+”y”+"<br>");

do

{

y=x*x;

document.write(x+"______"+y+"<br>");

x++;

}

while(x<7)

</script>

Результат выполнения скрипта:

Таблица значений функции

x______y

0______0

1______1

2______4

3______9

4______16

5______25

6______36

Пример 2.5. HTML-документ «Покупка(форма).html» с элементами интерактивности: функцией и формой (рис. 2.3) для запроса на выполнение сценария. Иллюстрируется технология расчета стоимости приобретенного товара.

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

HTML-Код

<html>

<head>

<meta http-equiv=" Content-Type" content="text/html; charset= windows-1251">

<title>Задача</title>

<script language="JavaScript">

<!--// Скрипт использует функцию mult(obj)

function mult(obj) // Функция работает с объектами

{ // Объявление переменных, как объектов

var kolich=obj.strkolich.value;

var cena=obj.strcena.value;

var uplach=obj.struplach.value;

stoim=kolich*cena;

obj.result.value=stoim;

if(uplach<stoim)

{

r= stoim-uplach;

document.write("Вам нужно доплатить"+r+"грн."+"<br>");

}

else{

sdacha= uplach-stoim;

document.write("Получите сдачу"+sdacha+"грн."+"<br>");

}

document.write("Нажмите кнопку 'назад', чтобы возвратить к форме, и просмотреть данные и результаты");

}

//-->

</script>

</head>

<body bgcolor="yellow" text="black">

<form name="form1"> // Данные к сценарию вводятся через форму

Покупка,<br></br>

Введите(kolich): <input size="7" name="strkolich" type="text"><br></br>

Введите(cena): <input size="7" name="strcena" type="text"><br></br>

Введите(uplach): <input size="7" name="struplach" type="text"><br></br>

<input value="Вычислить" onclick="mult(form1)" type="button"><br></br>

<input size="16" name="result" type="text"><br></br>

<INPUT TYPE="reset" NAME="Очистить форму" VALUE="Очистить"><br></br>

</form>

Нажмите кнопку 'вперед', чтобы пересмотреть другие результаты;

</body>

</html>

Рис. 2.3. Форма для запроса на выполнение скрипта

Результат

Покупка

Получите сдачу 5.5грн.

Нажмите кнопку 'назад', чтобы возвратить к форме,

и просмотреть данные и результаты.

Пример 2.6. HTML-документ «Календарь.html», обеспечивающий формирование календаря (рис. 2.4). Пример знакомит со средствами применения свойств и методов объекта Date(), а также с конструкцией оператора if.

Рис. 2.4. Календарь

<html>

<head>

<meta name=robots content="noindex">

</head><body bgcolor=white>

<title>http://programinet.narod.ru/ - База JavaScript (bjs)</title>

<SCRIPT language=Javascript>

calendar = new Date();

day = calendar.getDay();

document.write("<font face=arial><center><table width=100 border=1><td><center><font size=2>")

if (day == 0) {document.write("Воскресенье")}

if (day == 1) {document.write("Понедельник")}

if (day == 6) {document.write("Суббота")}

document.write("</font></center></td><tr><td><center><font size=2>")

month = calendar.getMonth();

if (month == 0) {document.write("Январь")}

if (month == 1) {document.write("Февраль")}

if (month == 11) {document.write("Декабрь")}

document.write("</font></center></td><tr><td><center><font size=7>")

date = calendar.getDate();

document.write(date)

document.write("</font></center></td><tr><td><center><font size=2>")

year = calendar.getYear();

if (year < 100) {

document.write("19" + year + "")

}

else if (year > 1999) {

document.write(year)

}

document.write("</font></center></td></table>")

</SCRIPT>

</HTML>

Пример 2.7. Листинг файла «Дата_час.html» с набором операций, связанных с объектом Date().

<SCRIPT>

today=new Date();

nextDecember=new Date("December 31,2011");

nextDecember.setYear(nextDecember.getYear());

msPerDay=24*60*60*1000; //Количество млсек в пор

daysLeft=(nextDecember.getTime()-today.getTime())/msPerDay;

daysLeft=Math.round(daysLeft);

interval_1= daysLeft-30; // Интервал уменьшен на 30 дней

interval_2=daysLeft+30; // Интервал увеличен на 30 дней

document.write("Текущая дата:"+today+"<BR>");

document.write("До конца декабря 2011 года осталось:_"+daysLeft+"_дней"+"<BR>");

document.write("Интервал_1 составляет:_"+interval_1+"_дней"+"<BR>");

document.write("Интервал_2 составляет:_"+interval_2+"_дней"+"<BR>"+"<BR>");

</SCRIPT>

Результат выполнения приведенного Web-приложения должны быть таким:

Текущая дата:Thu Aug 12 08:17:49 UTC+0300 2010

До конца декабря 2011 года осталось:_506_дней

Интервал_1 составляет:_476_дней

Интервал_2 составляет:_536_дней

Пример 2.8. Web-приложение «js 200.html», которое иллюстрирует расчет урожайности при известном количестве собранного урожая и площади поля. Приложение использует интерактивный скрипт, в котором применяется для расчетов функцию calculator(form), получающую аргументы с HTML-формы путем ввода их значений пользователем. Кроме того, в скрипте применена функция eval() и оригинальные атрибуты для назначения отделочников событий:

оnchange – когда элемент теряет фокус и значение элемента изменяется пользователем;

onKeyUp – событие,связаннон с отпусканием клавиши после события KeyPress;

/([ 0-9])/g - десятичная запись числа (в виде регулярного выражения) нажимом клавиш.

this.value - задает действие.

Рис. 2.5. Форма для выполнения сценария

HTML-Код

<script lang="JavaScript">

function calculator(form) {

a = eval(form.a.value);

b = eval(form.b.value);

c = b/a;

form.total.value = c;

}

</script>

<form>

Введите площадь поля в гектарах <input type="text" name="a" onchange="this.value=this.value.replace(/([ 0-9])/g,'');" onkeyup="var n=this.value.replace(/([ 0-9])/g,''); if(n!=this.value) this.value=n;"><br><br>

Введите количество собранного урожая в тонах <input type="text" name="b" onkeyup="this.value=this.value.replace(/([ 0-9])/g,'');"><br><br><br>

<input type="button" value="Рассчитать" onclick="calculator(this.form)">

<input type="reset" value="Сброс"><br><br>

Средняя урожайность <input type="text" name="total">

</form>

Результат отображается непосредственно в форме (см. рис. 2.5).

Контрольные вопросы

1. Какая сущность динамизации Web-документа?

2. Какая разница между понятиями «анимация» и «динамизация» ?

3. Раскройте понятие «интерактивность» документа.

4. Как создается JavaScript-Сценарий?

5. Как создается Web-Страница со сценарием?

6. Перечислите типы операторов языка JavaScript?

7. Перечислите типы данных языка JavaScript.

8. Что такое «инкремент» и «декремент»?

9. Объясните синтаксис операторов ?, if, switch.

10. Объясните синтаксис операторов while, do-while, for.

11. Что означает аббревиатура DOM?

12. Какие классы объектов используются в JavaScript?

13. Раскройте понятие «свойство» и «метод» объекта.

14. Приведите примеры свойств и методов объектов Math, Array.

15. Объясните роль функций в JavaScript.

16. Объясните сущность оператора: document.write(x+”______”+y “<br>”).

17. Объясните роль функций: alert(), prompt().

18. Какими средствами можно включить в HTML-документ музыку?

19. Какими средствами можно включить в HTML-Документ видео^-клип?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]