WEB Flashcards
Какво е асинхронно програмиране?
То ни позволява много неща да се случват едновременно, заразлика от синхронното програмиране, където всичко става последователно. Асинхронността попзволява на програмата да продължи да работ след стартиране на някое действие. Когато действието приключи, програмата оплучава резултата. Ппозволява изразяване на сложни функции, но може да усложни някои линейни.
Кога е удачно да използваме асинхронното програмиране?
Когато се нуждаем от ефективно урпавление на задачи, които отнемат време, а не искаме програмата да спира, докато изчаква техния резултат.
Пример за такава задача е заявка от мрежата.
Какво са callbacks и как се изпълняват?
Изпълнява код в отговор на събитие.
Събитията могат да са кликвания на мишката или натискане на клавиш от потребителя.
Изпълнява се, когато друга функция вече е приключила изпълнението си.
Всяка функция, която се подава като аргумент на друга, за да може да бъде изпълнена в нея, се нарича callback function.
Какво е Event Loop?
Модел за изпълнение, събира и обработва събития и изпълнява опашкови задачи.
Това е постоянно работещ процес, който следи callback queue-то и call stack-а.
Той е ключът към асинхронното програмиране, тъй като изпълнява всички операции на един нишков процес, но създава илюзия за многонишков.
Стекът събира операции, които да се изпълнят и ги ппремахва, когато бъдат завършени.
Опашката изпраща нови функции към стека.
Какво са Promises и как ни помагат?
Позволява по-лесно справяне с асинхронен код и управление на последователността на операциите.
Представяме бъдещ резултат, който завършва успешно или с грешка.
Promise - ът е като обект, към който прикачаме callback.
Лесно управление на грешки, чрез ‘.catch()’.
Пишем асинхронен код, който прилича на синхронен.
Chaining е важен аспект от promises, който ни опзволява да изпълняваме последователни асинхронни операции по-четими.
Методът ‘.then()’ ни позволява да прикачим callback към promise. Връща нов promise, различен от оригинала. Той представлява завършването на promise-ът и функцията за успешно или неуспешно завършване. АКО към тези две изходни функции има прибавени други асинхронни операции, биват изпълнени след като е завършил първият promise.
Какво са ключовите думи ‘async’ и ‘await’?
Улесняват работата с promises.
Async - генератор на promise, създава го при извикване. Решава се или се отхвърля ако има Exception. (error)
Await - означава, че кодът ще изчака завършването на promise-ът, преди да продължи.
Този подход прави асинхронният код да изглежда като синхронен.
Как работи ‘async-await’?
Когато някоя функция е ‘async’, тя винаги връща promise.
Когато използваме ‘await’ преди promise-ът, се преустановява до момента, в който promise-ът бива решен (resolve) или отхвърлен (rejected).
Когато ‘await’ изчака решението на promise-ът, неговият резултат се връща на ‘await’ оператора и така кодът си ппродължава изпълнението с получения резултат.
В случай, че promise-ът бива отхвърлен, ‘await’ хвърля грешка, която можем да хванем с ‘try-catch’ блок.
Какво е WWW (World Wide Web)?
Информационна система, която позволява достъп до документи и други ресурси в интернет.
Информацията се предоставя чрез уеб сървъри и се достъпват чрез уеб браузър.
Идентифицират се и се намират чрез URL.
Какво е HTML (Hypertext Markup Language)?
Описателен език без логики.
Тип документ, който представлява уеб страница форматирана чрез този език.
Той поддържа текст, снимки, видео, аудио, скриптове, хипервръзки.
Информацията в уеба се ппредава поп интернет чрез HTTP (Hypertext Transfer Protocol)
Какво са уеб клиентите и сървърите?
Уеб съдържанието се намира на уеб сървър. Те използват HTTP.
Съхраняват данни и ги предоставят при поискване от HTTP клиент.
Клиентите изпращат HTTP заявки към сървърите, те връщат HTTP отговор.
Уеб клиентът - уеб браузър.
Какво е уеб браузърът и с какво е по-различен от Node.js?
Уеб браузърът ни позволява да сърфираме в уеба, а node - не.
Node-а е среда за изпълнение на JS.
Браузърът ни рендерира уеб страницата, а node изпълнява JS.
Браузърът има ‘window’ обект, а node - не.
Node поддържа модулна система.
Node обработва сървърни заявки и връща отговор, а браузърът изпраща заявки към сървър и обработва отговора.
Какво е семантичният HTML и как да го постигнем?
Отнася се до използването на HTML елементи, които имат смислово значение и опписват структура на уеб страницата. Тук се пподчертава смисъла на съдържанието, а не само визуализацията.
Помага на браузъра да интерпретира страницата по-ефективно.
Какво е CSS и какво проблеми разрешава?
Cascading Style Sheet е език за оформление на HTML документи. Определя как елементите в уеб страницата да се визуализират.
Разрешава няколко проблема:
-осигурява визуален стил, който лесно може да се променя;
-с помоща на класове, могат да се правят промени върху много елементи наведнъж;
-съвместим с браузърите;
-позволява респонсив дизайн, според големината на екрана на потребителя;
Кои са 3-те начина за добавяне на CSS в кода?
- Inline - чрез кл. дума ‘style’ в HTML елемента. Използваме го за прилагане на уникален стил към единичен елемент.
- Internal - чрез изпозлване на елемента ‘<style>' в секцията '<head>', може да го използваме за стил на единична страница.</style>
- External - в отделен ‘.css’ файл си пишем стиловете и чрез елемента ‘<link></link>’ в секцията ‘<head>’ свързваме външния файл с HTML-а.
Каква е разликата между ID и класовете? Кое кога да използваме в CSS?
Това са селектори, използват се за дизайн в CSS файла.
ID - уникално.
Class - много елементи, ако ще ползваме същият селектор много пъти.
Какви са типовете селектори, които можем да ползваме в CSS?
Типове, класови и идентификаторни селектори, които насичват HTML елемент - <h1>
Атрибутни селектори - избираме елемент в зависимост от наличието на определен атрибут върху него - a[title] {}
Псевдо-класове и елементи - според състоянието - a:hover {}
Комбинатори - комбинира селекторите и избираме всички селектори в конкретен елемент - article > p {}
Каква е йерархията на приоритета на селекторите в CSS?
Селекторите имат опрпеделен приоритет срямо вида и наличието на ID, CLASS, TYPE.
ID - най-висок приоритет 1-0-0 (#example)
CLASS - +атрибути и псевдо класове са второстепенни 0-1-0 (.myClass, :hover)
TYPE - +псевдо елементи са с най-нисък приоритет 0-0-1 (p, h1, ::before)
Селекторите, които не се броят са с приоритет 0-0-0
Каква е разликата между блок елементите и линейните елеменети в CSS?
Block elements:
-винаги започват на нов ред и заемат цялото налично пространство по широчина;
-автоматично си добавят марджин преди и след себе си;
-примери: <p> и <div>
Inline elements:
-не започват на нов ред, заемат колкото ширина им е нужна;
-не добавят марджин;
-не могат да съдържат блокове;
-примери: <a> <span></span></a>
Какво е Grid Layout в CSS?
Метод за организиране на HTML елементите в решетка, като се разополагат на колони и редове.
Parent element - grid container;
Child el. - grid items;
Родителският трябва да има стиловете: `display: grid/inline-grid’
Какво е DOM дървото?
Програмен интерфейс, представя уеб документи като дърво от нодове и обекти. Това позволява на други програми да променят структурата, стила и съдържанието на уеб страницата.
Какво са document и window обектите?
Document Object - заредена уеб страница в браузъра, ако го достъпим, можем да манипулираме елементите в HTML-а. Добавяме динамично съдържание към уеб страницата.
Window Object - най-горният обект в йерархията на DOM-а. Това са прозорците в браузъра, който показва съдържанието на страницата.
Какво са Events в DOM?
Сигнали за натиснат клавиш или натиснат бутон на мишка.
Мишката: click, contextmenu(десен бутон), mouseover / mouseout, mousedown/ mouseup, mousemove;
Клавиатура: keydown / keyup, submit, focus
Документ: DOMContentLoaded
CSS: transitionend
Каква е разликата между event bubbling и event capturing?
- когато настъпи event, заппочва от най-вложения ел., върху който се случва event-а. (event.target);
- следва засичане и възходящо разпространение (bubbling);
- повреме на засичането, евента се движи от root-a към event.target-a
- повреме на разпространението върви от event.target-a към root-a
event capturing - рядко, обратно
Какво е DOM API? Защо да го използваме?
DOM Application Programming Interface - дава инструменти, с които можем да контролираме уеб страниците и създаваме по-интерактвини и динамични уеб пприложения.
- позволява динамични промени в съдържанието;
- създаване на интерактивни уеб приложения чрез реагиране на евенти;
- дава достъп за манипулация на данни в страницата;
- създаване на съдържание динамично по време на изпълнение на JS
Какво е URL?
Uniform Resource Locator е местоположението на ресурс в компютърна мрежа и начин за достъпване на този ресурс. Показва местоположението на уеб страници, файлове и др. Това е път към КОНКРЕТЕН и уникален ресурс в мрежата.
Какво е network protocol?
Мрежовият протокол е набор от правила и конвенции, които определят как данните се изпращат и обменят в мрежата.
- Протокол за комуникация - установяват, поддържат и прекратяват сесии. TCP/IP, HTTP
- Протокол за управление - наблюдение и контрол на ресурсите на мрежата. ICMP - за диагностика; SNMP - за управление на рутери
- Протокол за сигурност - поверителност HTTPS, SFTP, SSL
HTTP - основа на мрежата