Урок 10 — Примеры синхронного, асинхронного кода и вывод таблицы умножения на экран
В этом уроке рассматриваются виды скриптов в JavaScript.
Браузер загружает и отображает HTML постепенно. Особенно это заметно при медленном интернет-соединении: браузер не ждёт, пока страница загрузится целиком, а показывает ту часть, которую успел загрузить.
Если браузер видит тег <script>, то он по стандарту обязан сначала выполнить его, а потом показать оставшуюся часть страницы.
Для примера рассмотрим случай, который предложил Алексей Андреевич.
«Необходимо спросить у пользователя сколько ему лет и вывести на экран год его рождения.»
Не размещайте все 3 кода на одной странице!
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> </head> <body> <p>Узнайте свой год рождения.</p> <script> var age = prompt('Укажите ваш возраст'); var year = 2015 - age; alert('Вы родились в = ' + year ); </script> <p>Поздравляем! Вы узнали свой год рождения!</p> </body> </html>
Такое поведение называют «синхронным».
Теперь рассмотрим еще один случай.
«Необходимо спросить у пользователя год его рождения и вывести на экран сколько ему лет.»
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> </head> <body> <p>Узнайте свой возраст.</p> <script src="1.js" async></script> <script src="2.js" defer></script> <p>Спасибо за использование нашего ресурса!</p> </body> </html>
В корневой папке вашего сайта необходимо создать файлы «1.js» и «2.js» со следующим содержанием.
1.js:
var year = prompt('Год рождения'); var age = 2015 - year;
2.js:
alert('Ваш возраст равен ' + age + 'лет');
Это пример «асинхронного» поведения.
- Специальные атрибуты async и defer используются для того, чтобы пока грузится внешний скрипт – браузер показал остальную (следующую за ним) часть страницы. Без них этого не происходит.
- Разница между async и defer: атрибут defer сохраняет относительную последовательность скриптов, а async – нет. Кроме того, defer всегда ждёт, пока весь HTML-документ будет готов, а async – нет.
Если вы хотите более подробно разобраться в этой теме, щелкните здесь.
А если вы всерьез хотите выучить язык программирования JavaScript, то рекомендую сайт learn.javascript.ru и книги, представленные на этом сайте.
Теперь выведем таблицу умножения с помощью кода JavaScript:
<table> <script type="text/javascript"> for (i=1; i<=10; i++) { document.write("<tr>"); for (j=1; j<=10; j++) document.write("<td>"+String(i*j)+"</td>"); document.write("</tr>"); } </script> </table>
В интернете вы можете найти другие варианты выполнения данного задания, но мне понравился больше этот.
На этом урок окончен.