Результати пошуку
ITVDN: курси програмування
Відеокурси з
програмування
Підписка

300+ курсів за популярними IT-напрямками

Вибери свою IT спеціальність

Підписка
Підписка

300+ курсів за популярними IT-напрямками

Результати пошуку за запитом: html
Як створити веб-сайт за допомогою AJAX

Автор: Редакція ITVDN

Создания простого чата Для начала создадим простой чат с помощью HTML&CSS и PHP&MySQL Проектирование Базы Данных Переходим к phpMyAdmin. Создаем новую базу данных, называем “chatdb”. Создаем новую таблицу, называя “Posts”, включая в себя 4 столбца: “id” тип колонки INT, автоматическое увеличение на 1 (задаем A_I в ячейку с флажком) основной ключ (index); “nick” тип колонки VARCHAR и длина 100; “post_text” тип колонки TEXT; “post_dt” тип колонки DATETIME по умолчанию является CURRENT_TIMESTAMP. Создание веб-сайта. Во-первых, создадим главную страницу. Список комментариев и отправка формы, используя кнопку. Всё будет находится в файле “index.php” .  Давайте создадим этот файл и напишем что-то вроде этого:  <html> <head> head> <body> php $mysqli = new mysqli("127.0.0.1", "root", "", "chatdb"); /* "127.0.0.1" is MySQL host name. In local servers (XAMPP, Ampps, etc.) it is 127.0.0.1. If you using a dedicated hosting, see it in admin panel. */ /* "root" and "" is login and password for DB's user. In local servers usually default DB user is "root" with empty password. */ /* "chatdb" is DB's name. */ /* Warning: in XAMPP you should manually run MySQL server (from xampp-control.exe) to get it work. */ $result = $mysqli->query("SELECT * FROM posts;"); ?> <style> /* All CSS is very simplified. I provide it for example and no more.  * In Chrome it works tolerably, but in IE and Firefox it works very poorly.  */ .content {   display: table;   width: 50%;   min-width: 400px;   height: 80%;   /* Center horizontally and vertically */   position: absolute;   left: 0; right: 0;   top: 0; bottom: 0;   margin: auto;   /* Design */   border: 1px solid;   background-color: silver;   padding: 5px; } /* For mobile devices */ @media (max-width: 400px) {   .content {     width: 100%;     min-width: 0;     padding: 0px;   } } style> <div class="content"> <div id="comments" style="overflow-y: scroll; height: 100%;"> php if ($result) {   while ($post = $result->fetch_object()){     $nick = $post->nick;     $post_dt = $post->post_dt;     $post_text = $post->post_text;         echo "<b>$nickb> ($post_dt):<br>";     echo "$post_text<br>";     echo "<br>";   }   $result->close(); } ?> div> php $mysqli->close(); ?> <form action="post.php" method="post" style="height: 0; display: table-row;">   Nick:<br>   <input type="text" name="nick" style="width: 100%;">input><br>   <br>   Text:<br>   <textarea name="text" style="width: 100%;">textarea><br>   <br>   <input type="submit">input> form> div> <script type="text/javascript">     var divComments = document.getElementById('comments');     divComments.scrollTop = divComments.scrollHeight; script> body> html> 2. Дальше давайте создадим “post.php” файл и напишем такое:  php $nick = $_POST['nick']; $post_text = $_POST['text']; $mysqli = new mysqli("127.0.0.1", "root", "", "chatdb"); $nick = $mysqli->real_escape_string($nick); $nick = htmlspecialchars($nick); $post_text = $mysqli->real_escape_string($post_text); $post_text = htmlspecialchars($post_text); $mysqli->query("INSERT INTO posts (nick, post_text) VALUES ('$nick', '$post_text');"); $mysqli->close(); /* Redirect To Main Page */ header('Location: ' . $_SERVER['HTTP_REFERER']); ?> 3. Откроем ваш чат в любом продвинутом браузере. Вся работа:  4. Напишите ник и текст, а потом нажмите на кнопку отправки.  Когда отправили форму, сразу же происходит перенаправление формы главной страницы в “post.php”. “Post.php” моментально наполняет данными таблицу и перенаправляет на главную страницу. Также “post.php” содержит начальный XSS и SQL защищенный вход. Для упрощения не отправляем клиентам время с JS на “post_dt” на внесения данных, а указываем значение по умолчанию – CURRENT_TIMESTAMP, который предоставляет нынешнюю дату и время на сервер. Когда количество комментариев больше, чем экран может вместить, то комментарии   переполнены в div, используется вертикальный скроллбар. Во время загрузки страницы JS автоматически опускает скроллбар вниз к недавнему комментарию. Что тут не так? Проблема номер 1. Новый непрочитанный комментарий от пользователя не загружается в базу данных автоматически, без ручной перезагрузки страницы. Это очень, очень серьезная проблема для любого чата. Как это исправить? Очевидно, один из путей сделать это - использовать HTTP-запрос к фоновой работе автоматически (с помощью JS) и асинхронно, то есть это один из способов обеспечить выполнение AJAX в любой form. Проблема номер 2. Также неправильно то, что кнопка отправки перезагружает страницу (перенаправляет на вторую страницу и следующим шагом возвращает назад). При перезагрузке страницы сбрасывает “Nick” в  поле (также, как любые другие изменения, те, что сделали с пользователем) Как это исправить? Конечно, можно обеспечить выполнение обхода для сохранения изменений и перезагрузки на перезагружаемой странице. Но не эффективнее ли устранить причину, чем последствие? Можно только убрать перезагружаемую страницу и эта проблема будет решена автоматически. Проблема номер 2.1. Видите ли что-то необычное тут? Это слишком быстро? Дело с чатом очень простое – загружаем только два маленьких текстовых параметра. Что делать, если нужно улучшить чат с помощью добавления присоединения, а конкретно - изображений и видео? Видео может иметь объем в размере нескольких мегабайт, что тогда в этом случае? Давайте попробуем.  Давайте немного изменим “post.php”, после $mysql->query() добавив это:  for ($i = 0; $i < 1000000000; $i++) { } Старайтесь размещать какие-либо комментарии. Что мы видим? Нет, UI не остановилось (заморозилось), но браузер ждет до того, как закончится подключение:   Да, если “post.php” вызывает какую-то необработанную ошибку, то чат исчезает, и пользователь видит пустое окно с сообщением о непонятной ошибке. Чтобы вернуться к чату, пользователю стоит нажать кнопку “Back” в браузере. И это проблема номер 2.2. Давайте уберем петлю с “post.php” и исправим эти проблемы. Реализация легкого AJAX в простой чат Автоматическое обновление комментариев Эта веб-страница без AJAX? Это веб-страница, которая полностью перезагружается. Эта веб-страница c AJAX? Это веб-страница, что перезагружается частично. Где же взять части этих страниц? Стоит разделить нашу страницу на части, в этом случае сервер генерирует страницу частично. Страница будет состоять из двух частей – блок комментариев и другой контент страницы. Комментарии будут загружаться и перезагружаться отдельно от другой страницы. Давайте сделаем первую часть, то есть блок комментариев. Для начала создадим пустой файл, назовем “getcomment.php”. Дальше переходим в “index.php” для того, чтобы вырезать комментарии и далее отделить его. 1. Вырезаем инициализированный блок MySQL с “index.php"  php $mysqli = new mysqli("127.0.0.1", "root", "", "chatdb"); /* "127.0.0.1" is MySQL host name. In local servers (XAMPP, Ampps, etc.) it is 127.0.0.1. If you using a dedicated hosting, see it in admin panel. */ /* "root" and "" is login and password for DB's user. In local servers usually default DB user is "root" with empty password. */ /* "chatdb" is DB's name. */ /* Warning: in XAMPP you should manually run MySQL server (from xampp-control.exe) to get it work. */ $result = $mysqli->query("SELECT * FROM posts;"); ?> вставляем в “getcomments.php”. 2. Следующее, вырежем контент div c комментариями с “index.php”: php if ($result) {   while ($post = $result->fetch_object()){     $nick = $post->nick;     $post_dt = $post->post_dt;     $post_text = $post->post_text;         echo "<b>$nickb> ($post_dt):<br>";     echo "$post_text<br>";     echo "<br>";   }   $result->close(); } ?> И вставим (добавим) в “getcomments.php” после инициализации MySQL. 3. Дальше, вырежем недалекий блок MySQL с “index.php”: php $mysqli->close(); ?> Вставим его в конец файла “getcomments.php”. 4. Наконец-то, убираем JS-скрипт, который опускает скролл в самый низ. <script type="text/javascript"> var comments = document.getElementById('comments'); comments.scrollTop = comments.scrollHeight; script> Не переживай, это только временно. 5. Сделано. Теперь имеем что-то наподобие этого:  <html> <head> head> <body> <style> /* All CSS is very simplified. I provide it for example and no more.  * In Chrome it works tolerably, but in IE and Firefox it works very poorly.  */ .content {   display: table;   width: 50%;   min-width: 400px;   height: 80%;   /* Center horizontally and vertically */   position: absolute;   left: 0; right: 0;   top: 0; bottom: 0;   margin: auto;   /* Design */   border: 1px solid;   background-color: silver;   padding: 5px; } /* For mobile devices */ @media (max-width: 400px) {   .content {     width: 100%;     min-width: 0;     padding: 0px;   } } style> <div class="content"> <div id="comments" style="overflow-y: scroll; height: 100%;"> div> <form action="post.php" method="post" style="height: 0; display: table-row;">   Nick:<br>   <input type="text" name="nick" style="width: 100%;">input><br>   <br>   Text:<br>   <textarea name="text" style="width: 100%;">textarea><br>   <br>   <input value="Submit" type="submit">input> form> div> body> html> getcomments.php:  php $mysqli = new mysqli("127.0.0.1", "root", "", "chatdb"); /* "127.0.0.1" is MySQL host name. In local servers (XAMPP, Ampps, etc.) it is 127.0.0.1. If you using a dedicated hosting, see it in admin panel. */ /* "root" and "" is login and password for DB's user. In local servers usually default DB user is "root" with empty password. */ /* "chatdb" is DB's name. */ /* Warning: in XAMPP you should manually run MySQL server (from xampp-control.exe) to get it work. */ $result = $mysqli->query("SELECT * FROM posts;"); ?> Вероятно, теперь наша страница разделена. Давайте проверим её. Переходим http (точнее ССЫЛКА для локального сервера). Дальше, переходим на главную страницу, http:///index.php Это удивительно! Всё удачно получилось, разделив страницу на части за пару минут! Не останавливаемся на этом. Теперь “glue” эти части с помощью AJAX. Как это сделать? 1. Для начала стоит создать пустой JS-скрипт на главной странице: <script type="text/javascript"> alert('Test'); script> Добавив это после тега div, перед закрывающимся тегом . 2. Сделаем HTTP GET запрос от JS к “getcommet.php” Для этого используем XMLHtttpRequest (XHR) класс: <script type="text/javascript"> var xhr = new XMLHttpRequest(); xhr.open('GET', '/getcomments.php', false); xhr.send(null); if (xhr.status == 200) {   alert(xhr.responseText); } script> Это работает, но не читает старые версии IE те, что не поддерживают такую инициализацию. Для получения более кросс-браузерного пути переходим в и добавляем это: <script type="text/javascript"> function getXmlHttp(){   var xmlhttp;   try {     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");   } catch (e) {     try {       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");     } catch (E) {       xmlhttp = false;     }   }   if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {     xmlhttp = new XMLHttpRequest();   }   return xmlhttp; }; script> И главный скрипт (в конце) <script type="text/javascript"> var xhr = getXmlHttp(); xhr.open('GET', '/getcomments.php', false); xhr.send(null); if (xhr.status == 200) {   alert(xhr.responseText); } script> Как видно, теперь JS получает контент со страницы “getcomments.php” и показывает это в предупреждении.   2.1. Вопрос: «Это на самом деле AJAX (Asynchronous Javascript And Xml)?» Это AJAX, потому что запрос сервера отформатирован в HTML (который основан на XML). Но действительно ли это AJAX, это асинхронно? Проверим. Добавим эти уже знакомые строки в любое место между в “getcomments.php”: for ($i = 0; $i < 1000000000; $i++) { } Что теперь видно на загружаемой странице? Вначале страница зависает, его замораживает UI (становится не реагирующим на нажатие левой/правой кнопки мыши): Дальше Chrome показывает навязчивое всплывающие окно, сообщающее об удалении страницы: Это не AJAX! Это JAX! Как его сделать асинхронным? К счастью, ХHR также поддерживает асинхронный режим: <script type="text/javascript"> var xhr = getXmlHttp(); xhr.open('GET', '/getcomments.php', true); /* true for asynchronous */ xhr.onreadystatechange = function() {   if (xhr.readyState == 4) {     if(xhr.status == 200) {       alert(xhr.responseText);     }   } }; xhr.send(null); script> В этом случае браузер не ждет ответа с главного потока пользовательского интерфейса, он запускает в другом (асинхронно) и вызываемым событием “onreadystatechange” в главном контексте UI.  Теперь всё в порядке, страница полностью доступна, пока запрос запущен, и после ответа получит предупреждение. for ($i = 0; $i < 1000000000; $i++) { } И продолжаем работу. 3. Добавляем этот контент в div  вместо предупреждения. Заменить это: alert(xhr.responseText);  C этим: var divComments = document.getElementById('comments'); divComments.innerHTML = xhr.responseText; Возвращаем назад, клиент видит “glued” страницу с блоком комментариев. 4. Дальше следует установить интервал для автоматической проверки новых комментариев время от времени… и также восстановить удаленный сценарий автоматической прокрутки.  <html> <head> <script type="text/javascript">     function getXmlHttp() {         var xmlhttp;         try {             xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");         } catch (e) {             try {                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");             } catch (E) {                 xmlhttp = false;             }         }         if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {             xmlhttp = new XMLHttpRequest();         }         return xmlhttp;     }; script> head> <body> <style> /* All CSS is very simplified. I provide it for example and no more.  * In Chrome it works tolerably, but in IE and Firefox it works very poorly.  */ .content {   display: table;   width: 50%;   min-width: 400px;   height: 80%;   /* Center horizontally and vertically */   position: absolute;   left: 0; right: 0;   top: 0; bottom: 0;   margin: auto;   /* Design */   border: 1px solid;   background-color: silver;   padding: 5px; } /* For mobile devices */ @media (max-width: 400px) {   .content {     width: 100%;     min-width: 0;     padding: 0px;   } } style> <div class="content"> <div id="comments" style="overflow-y: scroll; height: 100%;"> div> <form action="post.php" method="post" style="height: 0; display: table-row;">   Nick:<br>   <input type="text" name="nick" style="width: 100%;">input><br>   <br>   Text:<br>   <textarea name="text" style="width: 100%;">textarea><br>   <br>   <input value="Submit" type="submit">input> form> div> <script type="text/javascript">     var divComments = document.getElementById('comments');     function loadComments() {         var xhr = getXmlHttp();         xhr.open('GET', '/getcomments.php', true);         xhr.onreadystatechange = function () {             if (xhr.readyState == 4) {                 if (xhr.status == 200) {                     if (xhr.responseText !== divComments.innerHTML) {                         divComments.innerHTML = xhr.responseText;                         divComments.scrollTop = divComments.scrollHeight;                     }                 }             }         };         xhr.send(null);     };     loadComments();     setInterval(loadComments, 1000) script> body> html> Теперь проблема исправить это. Новые комментарии с другого пользовательского чата (другие вкладки браузеров, окон и экземпляров) получают каждые 1000 миллисекунды (1 секунду) автоматически. Но отправка комментариев уже вызывает перезагрузку нашей страницы. Отправка комментариев без перезагрузки Как написано выше, XHR помогает отправлять HTTP GET-запросы без перезагрузки страницы и GUI заморозки (асинхронно). Теперь отправляем HTTP-запрос асинхронно, но на этот раз POST запрос, а не GET. И, естественно, XHR позволяет это. Используем метод send(). Для GET указываем null. Для POST устанавливаем запрос “body”.Также нужно добавить “Content-Type:application/x-www-from-urlencoded” в header  для того, чтобы разрешить серверу знать, какой формат использовать для отправки данных. Заметка: если не знаете, что отправлять, то можно захватить регулярный запрос с помощью “Fiddler” или же любой другой HTTP-перехватчик и только просимулировать запрос. HTTP-перехватчик — это незаменимый инструмент для работы с HTTP/HTTPS. Это позволяет увидеть все headers и bodies по всем HTTP(S)-запросам, что отправляются в систему. Лучше использовать “Fiddler”, это бесплатное, современное и очень простое приложение, что может поддерживать HTTP/HTTPS и оба Win x86/x64. 1. Для начала создадим пустой JS скрипт в HTML. Разместить до самого тега, потому что этот скрипт будет использован для отправки формы комментария (форма будет вызывать этот скрипт при отправке).2. В этом скрипте, реализуем функцию, что будет отправлять ник и комментарии в “post.php”  <script type="text/javascript"> function postComment(nick, text) {   var xhr = getXmlHttp();   xhr.open('POST', '/post.php', true);   xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');   xhr.onreadystatechange = function() {     if (xhr.readyState == 4) {       if (xhr.status == 200) {         /* it isn't required to add comment to DOM manually, it will done automatically on next refresh via AJAX */       }     }   };   xhr.send('nick=' + nick + '&text=' + text); /* joining the data in format simulates form */ }; script> 3. Следующие, перезагружая страницу при отправке:  ... onsubmit="return false;"> Также добавим вызов “postComment’s”: action="post.php" method="post" style="height: 0; display: table-row;" onsubmit="postComment(this.nick.value, this.text.value); return false;"> 4. Наконец, необязательно, но можно убрать “action” и “method” с формы:  <form style="height: 0; display: table-row;" onsubmit="postComment(this.nick.value, this.text.value); return false;"> 5. Результат: <html> <head> <script type="text/javascript">     function getXmlHttp() {         var xmlhttp;         try {             xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");         } catch (e) {             try {                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");             } catch (E) {                 xmlhttp = false;             }         }         if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {             xmlhttp = new XMLHttpRequest();         }         return xmlhttp;     }; script> head> <body> <style> /* All CSS is very simplified. I provide it for example and no more.  * In Chrome it works tolerably, but in IE and Firefox it works very poorly.  */ .content {   display: table;   width: 50%;   min-width: 400px;   height: 80%;   /* Center horizontally and vertically */   position: absolute;   left: 0; right: 0;   top: 0; bottom: 0;   margin: auto;   /* Design */   border: 1px solid;   background-color: silver;   padding: 5px; } /* For mobile devices */ @media (max-width: 400px) {   .content {     width: 100%;     min-width: 0;     padding: 0px;   } } style> <div class="content"> <div id="comments" style="overflow-y: scroll; height: 100%;"> div> <script type="text/javascript">     function postComment(nick, text) {         var xhr = getXmlHttp();         xhr.open('POST', '/post.php', true);         xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');         xhr.onreadystatechange = function () {             if (xhr.readyState == 4) {                 if (xhr.status == 200) {                     /* it isn't required to add comment to DOM manually, it will done automatically on next refresh via AJAX */                 }             }         };         xhr.send('nick=' + nick + '&text=' + text);     }; script> <form style="height: 0; display: table-row;" onsubmit="postComment(this.nick.value, this.text.value); return false;">   Nick:<br>   <input type="text" name="nick" style="width: 100%;">input><br>   <br>   Text:<br>   <textarea name="text" style="width: 100%;">textarea><br>   <br>   <input value="Submit" type="submit">input> form> div> <script type="text/javascript">     var divComments = document.getElementById('comments');     function loadComments() {         var xhr = getXmlHttp();         xhr.open('GET', '/getcomments.php', true);         xhr.onreadystatechange = function () {             if (xhr.readyState == 4) {                 if (xhr.status == 200) {                     if (xhr.responseText !== divComments.innerHTML) {                         divComments.innerHTML = xhr.responseText;                         divComments.scrollTop = divComments.scrollHeight;                     }                 }             }         };         xhr.send(null);     };     loadComments();     setInterval(loadComments, 1000) script> body> html>  Теперь простая реализация AJAX подошла к концу. Это ещё не конец, это только начало. Есть ещё достаточно всего для изучения и улучшения.
JavaScript патерни проєктування: новий відеокурс для розробників
Якісний код — це не лише про те, щоб програмне забезпечення «працювало», а про те, щоб архітектуру було легко масштабувати, підтримувати та розвивати. Саме тому досвідчені Middle та Senior розробники використовують шаблони проєктування JavaScript — перевірені часом підходи, які допомагають будувати ефективну структуру застосунків. Новий курс «JavaScript Патерни проєктування» — це глибоке занурення у світ сучасної розробки. Ви не просто ознайомитесь із теорією, а навчитеся застосовувати основні патерни на практиці, розуміти їх призначення та інтегрувати у реальні проєкти. Авторка курсу: Яцків Марія. Формат: 12 відеоуроків загальною тривалістю 7 годин 21 хвилина. Курс охоплює такі теми: Основи патернів проєктування та їх роль у розробці ПЗ. Породжуючі патерни: Singleton, Factory Method, Abstract Factory, Builder, Prototype. Структурні патерни: Adapter, Bridge, Composite, Flyweight, Proxy, Decorator, Facade. Поведінкові патерни: Chain of Responsibility, Command, Iterator, Observer, Mediator, Strategy, Template Method, Visitor. Антипатерни та їх вплив на якість коду. Основи рефакторингу та покращення структури застосунків. Під час навчання ви навчитеся не лише писати код, а й мислити як розробник, який будує архітектуру. Ви зрозумієте, як обирати правильні підходи для різних задач, уникати типових помилок та покращувати вже існуючий код. Завдяки практичним прикладам і розбору реальних ситуацій кожна тема стане зрозумілою та застосовною у роботі. У результаті ви отримаєте міцну базу, яка допоможе створювати більш гнучкі, масштабовані та зрозумілі JavaScript-застосунки. Чого ви навчитеся на курсі? Проходження навчання дозволить вам вийти на новий професійний рівень: Розуміння архітектури: ви навчитеся мислити як архітектор, обираючи оптимальні рішення для складних задач. Чистий код: використання шаблонів проєктування у JavaScript допомагає уникати типових помилок та "спагеті-коду". Масштабованість: ваші застосунки стануть більш гнучкими та легкими для підтримки іншими розробниками. Оптимізація: ви навчитеся виявляти та усувати антипатерни, що негативно впливають на якість продукту. Попередні вимоги: Базові знання HTML, CSS та JavaScript. Готові вийти на новий рівень у розробці? Долучайтеся до курсу вже сьогодні та навчіться писати код, який не тільки працює, а й легко масштабується та підтримується. Перший урок доступний безкоштовно, а за наявності підписки ви можете пройти курс повністю вже зараз.     
Новий курс Верстання на Grid українською

Автор: Редакція ITVDN

Добрий день, друзі! Сьогодні маємо гарні новини для всіх, хто хоче вдосконалити свою техніку верстання вебсторінок – на ITVDN вийшли всі уроки курсу “Верстання на Grid”. Курс українською мовою! CSS Grid — це популярний механізм зручного розташування елементів на сайті (за принципом мережі або таблиці з рядками та стовпцями) з можливістю легкої реалізації адаптивності під різні екрани. Даний курс надасть вам не тільки теоретичне розуміння найкращих практик та сучасних трендів у галузі верстання, а й практичні навички реалізації гнучких вебмакетів. Автор курсу – Кінаш Станіслав, FrontEnd Developer. Тривалість курсу – 3 години 46 хвилин. Структура курсу: Основні поняття Grid Layout. Grid-треки (Grid-смуги). Явний і неявний Grid, gap, minmax, grid-column/row. Subgrid, Grid vs. Flexbox, auto-fill/auto-fit. Позиціонування за направляючими лініями Grid, grid-area, grid span. Шаблони Grid-областей. Визначення назв ліній в Grid. Grid-auto-flow, анонімні елементи Grid. Вирівнювання блоків у CSS-розмітці Grid. Створення проєкту. Чого ви навчитеся на даному курсі: Використовувати CSS Grid для грамотного верстання ваших вебсторінок. Використовувати Figma для побудови шаблонів і подальшої роботи. Реалізовувати адаптивні макети за допомогою медіа запитів. Використовувати Grid для верстання під різні пристрої та екрани. Використовувати властивості flex та grid. Вміти перетворювати флекс блоки на грід. Створювати готовий зверстаний проєкт та деплоїти його на GitHub. І багато іншого. Попередні вимоги Курс підійде тим, хто вже має базові знання HTML та CSS. Дивіться перший урок у вільному доступі. Курс вже доступний на нашому сайті в повному обсязі – до кожного уроку є практичні завдання та опорний конспект для більш глибокого засвоєння матеріалу. Якщо у вас є активна підписка, ви можете дивитися його прямо зараз. Курс входить до комплексної програми підготовки за спеціальностями: Верстальник FrontEnd Developer React Developer Angular Developer               
Новий відео курс - Створення веб-додатків на PHP

Автор: Редакція ITVDN

Дорогие друзья, на ITVDN опубликован новый видео курс, посвященный изучению веб-разработки на PHP. Проходя курс “Создание веб приложений на PHP” вы сможете закрепить на практике знания PHP, полученные ранее из других курсов или книг. Видео курс создан для тех, кто хочет после изучения основ РНР увидеть, как строятся приложения без привязки к фреймворку. Это позволит получить практическую основу знаний для дальнейшего изучения фреймворков. На данном курсе на примере создания блога рассматривается разработка веб приложения с использованием готовых инструментов, которые предоставляет язык программирования PHP и известные открытые библиотеки. На курсе показываются популярные и общепринятые подходы для решения часто возникающих задач при построении приложения. Автор курса — Демьян Костельный, Middle PHP Developer. В записанных видео уроках он делится техниками эффективного построения веб-приложений на PHP, опираясь на собственный опыт и лучшие практики. Структура курса: Паттерн MVC и архитектура приложений. Маршрутизация в приложениях. Написание своего блога с MVC. Использование классов-репозиториев для БД. Паттерны проектирования в архитектуре приложения. Авторизация и регистрация. Создание админ панели к блогу. Файловая система. Безопасность в приложении. Гибкость админ панели. Чему вы научитесь на данном курсе: Создавать полноценное приложение с нуля, используя современные подходы, паттерны и библиотеки. Понимать, что такое архитектурный паттерн MVC и как его применять на практике при создании приложения. Понимать, зачем использовать проектирование архитектуры в приложении. Понимать принципы маршрутизации в веб приложении и реализовывать их в своем приложении. Использовать классы-репозитории для работы с базой данных. Работать с Doctrine ORM для простого доступа к базе данных. Понимать и уметь применять на практике такие порождающее паттерны, как Factory Method, Abstract Factory, Builder и Prototype. Реализовывать регистрацию и авторизацию в своем приложении. Работать с файловой системой в своем приложении. Обеспечивать базовый уровень безопасности своего приложения. Предварительные требования Для прохождения данного курса необходимы базовые знания HTML/CSS, PHP на уровне курса «PHP Базовый», понимание языка запросов SQL и знание MySQL. Смотрите первый урок в свободном доступе. Если у вас есть активная подписка, курс доступен для вас в полном объеме.
Новий курс “React Essential”

Автор: Редакція ITVDN

Привет! У нас отличные новости для тех, кто изучает FrontEnd разработку. На ITVDN появился новый курс, посвященный разработке на React. Что это за технология? React - это популярный JavaScript-фреймворк. Он предназначен для упрощения разработки UI - пользовательского интерфейса. Среди его достоинств выделяют: гибкость, простую миграцию между версиями, высокую скорость разработки, хорошую производительность разработанных приложений, удобство в переиспользовании уже имеющегося кода. Курс “React Essential” является вводным в технологию React. Автор курса - Муляк Дмитрий - FrontEnd разработчик со стажем, который рад поделиться своими знаниями со всеми желающими развиваться в сфере разработки сайтов. Какие темы автор раскрыл в своем курсе? Введение в React. JSX в React. Основы React. Состояние и жизненный цикл. Формы. Стилизация в React. Создание списка заметок. Введение в роутинг. Пройдя этот курс, вы научитесь: Понимать философию разработки в стиле React. Строить простые одностраничные приложения с помощью React.js. Работать с компонентами в React, а также создавать компоненты самостоятельно. Преобразовывать функциональные компоненты в классовые. Работать с событиями и списками. Работать с состояниями с помощью библиотеки Redux. Применять для стилизации вашего приложения Inline CSS и CSS модули. Работать с другими аспектами фреймворка React. Предварительные требования Необходимый бэкграунд для успешного прохождения “React Essential”: хорошее знание HTML, CSS и JavaScript. Курс входит в специальности: FrontEnd Developer и React Developer. Если вас заинтересовало обучение технологии React и вы хотите познакомиться курсом, переходите по ссылке и смотрите бесплатный вступительный урок от Дмитрия. Также можем вам предложить ознакомиться со статьей “Что должен знать FrontEnd разработчик” либо просмотреть видео, где подробно рассматриваются основные технологии создания клиентских веб-приложений.
14 січня – День народження ITVDN

Автор: Редакція ITVDN

14 января 2014 года на просторах интернета появился ITVDN.com. В первой публикации было всего 17 видео курсов по 2 специальностям - .NET и FrontEnd. Авторами первых курсов были тренеры учебного центра CyberBionic Systematics. Сегодня проекту исполнилось 6 лет и мы подводим итоги. Результаты ITVDN за 6 лет: В Каталоге ITVDN 188 курсов разного уровня сложности по 19 направлениям. Сообщество авторов ITVDN – более 100 специалистов из разных IT компаний и разных стран. Созданы 12 комплексных программ обучения по самым востребованным специальностям Проводится групповое обучение в формате LiveOnline по трем специальностям – FrontEnd, Java, .NET. Созданы интерактивные тренажеры по HTML, CSS, JavaScript, C#, Java, Python, SQL, C++ для формирования навыков программирования. Проведено 278 бесплатных вебинаров-практикумов. YouTube канал ITVDN входит в пятерку самых популярных русскоязычных каналов по программированию. На канале 172 тысячи подписчиков, 1880 видео уроков. 91 тысяча зарегистрированных пользователей, которые прошли обучение хотя бы по 1 курсу. География проекта – Россия, Украина, Беларусь, Казахстан, Грузия, Армения, Латвия, Литва, Израиль, Германия и др. Постоянно действующий Социальный проект позволяет бесплатно проходить обучение инвалидам, сиротам и другим людям, нуждающимся в помощи. Как образовательный и информационный партнер, ITVDN тесно сотрудничает с IT конференциями, организаторами IT олимпиад и хакатонов, награждая победителей и предоставляя возможности беплатного обучения для участников. Мы продолжаем расти и развиваться. Наша цель – быть лидером IT образования, удовлетворяя самые высокие запросы как новичков, так и профессионалов. Благодарим всех, кто пользуется нашим ресурсом. Оставайтесь на ITVDN. Празднуем вместе!
Результати акції Technical Skills Марафон

Автор: Редакція ITVDN

В период с 10 по 20 ноября 2017 года на ITVDN проходила акция Technical Skills Марафон. В акции приняли участие 600 человек, из них 98 успешно выполнили задания практикумов. 21 ноября в 17:00 на YouTube канале в прямом эфире были определены победители марафона. Смотрите видео запись розыгрыша. Как и было заявлено в условиях акции, мы провели розыгрыш 5 подписок на три месяца и 25 подписок на 1 месяц. Вот имена победителей: HTML&CSS Малышев Сергей – подписка на 3 месяца Krasnou Vitali – подписка на 1 месяц Цымбаленко Денис - подписка на 1 месяц Brovenko Vadim- подписка на 1 месяц Хмара Владимир- подписка на 1 месяц Bezvesilny Konstantin- подписка на 1 месяц JavaScript Takes Leios– подписка на 3 месяца Милеев Антон– подписка на 1 месяц Loktionov– подписка на 1 месяц Корольчук Александр– подписка на 1 месяц Korobka Sergey– подписка на 1 месяц Хмара Владимир– подписка на 1 месяц SQL Цуканов Илья - подписка на 3 месяца Иванова Ольга - подписка на 1 месяц Safronyuk Maxim - подписка на 1 месяц Сидоренко Борис - подписка на 1 месяц Brovenko Vadim  - подписка на 1 месяц Prokhorov Konstantin - подписка на 1 месяц C# Starter Цуканов Илья - подписка на 3 месяца Кириличев Владислав - подписка на 1 месяц Белошицкий Николай - подписка на 1 месяц Гурбич Михаил - подписка на 1 месяц Karpenko Volodymyr - подписка на 1 месяц Хмара Владимир - подписка на 1 месяц С# Essential Brovenko Vadim - подписка на 3 месяца Хмара Владимир - подписка на 1 месяц Arsen Grigoryan - подписка на 1 месяц Xazaryan Artur - подписка на 1 месяц Bulyha Nazar - подписка на 1 месяц Nakytniak Dmitry - подписка на 1 месяц 4 участника акции успешно выполнили задания всех 5 практикумов. Вот их имена: Brovenko Vadim Хмара Владимир Korobka Sergey Pokydko Anton Наш супер-герой, выполнивший все задания с максимальными результатами - Brovenko Vadim. Мы поздравляем Вадима и будем рады вручить ему фирменную дженгу и футболку ITVDN! Письма с подорочными сертификатами будут отправлены победителям 22 ноября 2017 года. Благодарим всех участников марафона!
ITVDN став партнером програми Technology Nation

Автор: Редакція ITVDN

Technology Nation – это всеукраинская образовательная программа фонда BrainBasket, стартовавшая в 2016 году. О фонде BrainBasket BrainBasket стремится сделать ИТ-направление движущей силой экономического роста Украины с помощью развития образовательной инфраструктуры. Цель - способствовать подготовке 100000 новых IT-специалистов до 2020 года. Приятный подарок для участников Программы Technology Nation приготовил ITVDN - онлайн ресурс для профессиональной подготовки разработчиков программного обеспечения, созданный учебным центром CyberBionic Systematics. Все участники Программы (более 23 тысяч человек!) получат бесплатно полный доступ ко всем учебным материалам платформы ITVDN - это более пятидесяти видео курсов по таким популярным направлениям IT образования, как frontend разработка, программирование на С # и Microsoft .NET технологии, Python, разработка игр на Unity 3D, мобильная разработка на Xamarin.Android и другие. В каждом видео курсе есть не только видео уроки, но и полный комплект учебных материалов - примеры кода с комментариями, базовые конспекты, задания для самостоятельной работы, презентации. После каждого пройденного урока предусмотрено онлайн тестирование для проверки знаний и в случае успешной сдачи финального экзамена по курсу - соответствующий электронный сертификат от Testprovider.com. Для тех, кто сейчас проделывает первые шаги в изучении основ программирования, мы советуем воспользоваться ITVDN для изучения web технологий - ведь они сейчас являются наиболее популярными не только в Украине, но и в мире в целом. На ITVDN вы сможете изучить технологии по направлению Front-End разработки: • HTML & CSS • Создание адаптивного сайта с Twitter Bootstrap 3 • JavaScript Essential • JavaScript Advanced • JQuery • JavaScript Шаблоны • HTML5 & CSS3 • Angular JS Essential • React JS Essential Большой сюрприз ждет тех, кто прошел конкурсный отбор в двадцати трех городах и попал в первые учебные группы Программы Technology Nation. Эти 345 человек получат в подарок полный доступ к видео курсам ITVDN на 3 месяца! ITVDN желает Программе Technology Nation и всем ее участникам успехов в обучении ИТ-специалистов на высоком профессиональном уровне.
ITVDN анонсує новий відеокурс Angular JS

Автор: Редакція ITVDN

ITVDN выпустил новый видеокурс AngularJS для веб разработчиков, создающих приложения используя JavaScript, по одному из самых популярных JavaScript фреймворков, который используется для написания Single Page Application. Большинство разработчиков используют AngularJS как основную библиотеку при разработке SPA приложений. Этот видеокурс будет полезен тем, кто хочет овладеть современными знаниями и выйти на новый профессиональный уровень. Он будет интересен как начинающим разработчикам, так и тем у кого уже есть опыт в программировании языке JavaScript. Данный видеокурс позволит структурировать свои знания и даст возможность получить необходимый набор знаний для того чтобы научиться разбираться в чужом коде и создавать также свои собственные приложения. Об AngularJS можно сказать, что он стал стандартом в разработке SPA приложений. Для того чтобы изучить данный видеокурс Вам необходима будет владеть языком HTML и СSS и , в том числе, JavaScript Essential и JavaScript Advanced. В данном курсе вы узнаете что такое AngularJS и шаблоны MVC. Когда именно нужно использовать AngularJS и какова его структура. Будут приведены простые и сложные примеры. Можно будет изучить как использовать Bootstrap. Вы научитесь создавать AngularJS приложения использовать модули, контроллеры и основные директивы для построения пользовательского интерфейса. Также вы научитесь использовать однонаправленный и двунаправленные привязки данных. Использовать директивы для создания повторяющихся элементов интерфейса и загрузки частичных представлений. В курсе будет рассмотрен AJAX – как неотъемлемая часть Single Page приложения. Будут рассматриваются примеры работы с сервисом $http для взаимодействия с серверной стороной. Одно из преимуществ приложений, написанных с использованием шаблона MVC – тестируемость. В одном из уроков курса будет показано, как создавать и запускать unit тесты для AngularJS приложений. В этом курсе подробно рассматриваются принципы создания сервисов в AngularJS, а также рассматриваются основные системные сервисы. Подробнее информацию о курсе Вы можете посмотреть на странице видеокурса по AngularJS.
Новорічні подарунки для розробників від ITVDN.com

Автор: Ирина Музыка

Новогоднее настроение, несмотря на дождь и слякоть, потихоньку проникает в наши офисы и дома. Мы все уже живем с предчувствии и ожидании праздника, отдыха, встреч и подарков. Образовательный портал ITVDN раздает подарки для IT специалистов – сертификаты на видео курсы. Чтобы получить их, нужно заполнить заявку.  Получив подарочный сертификат, можно выбрать один из видео курсов - по направлению C# и .NET: C# Starter (9 видео уроков ) C# Essential (18 видео уроков) C# Professional (17 видео уроков) SQL Essential (9 видео уроков) Алгоритмы и структуры данных (8 видео уроков) ADO.NET (8 видео уроков) Entity Framework 5.0 (4 видео урока) Шаблоны проектирования (29 видео уроков) WCF Essential (5 видео уроков) WPF Essential (10 видео уроков) WPF Advanced (10 видео уроков) Refactoring in .NET Apps (5 видео уроков) TDD (4 видео урока) SharePoint 2013 Администрирование (5 видео уроков) -по веб разработке (frontend и ASP.NET/backend): HTML, CSS ( 8 видео уроков) JavaScript Essential (5 видео уроков) JavaScript Advanced (10 видео уроков) HTML5, CSS3 (10 видео уроков) JQuery (9 видео уроков) Twitter Bootstrap  3 (4 урока) ASP.NET Базовый (10 видео уроков) ASP.NET Advanced (9 видео уроков) ASP.NET MVC Fundamentals ( 10 видео уроков) ASP.NET MVC 4 (5 видео уроков) Каждый видео курс включает в себя видео урок, презентацию, краткий конспект, практические примеры, расмотренные в уроке и задания для самостоятельной работы. Плюс тестирование и сертификация по выбранному видео курсу. Заявки принимаются до 25 декабря 2014 года. Заявку может составить любой сотрудник, но в целом в пакете для одной компании будет не более 10 сертификатов. Составитель заявки гарантированно получит свой именной подарочный сертификат. Коллектив ITVDN.com желает всем прекрасного Нового года!
Notification success