- Напишите о том, что вы узнали на этой неделе.
API и обещания
2. Зачем вам использовать что-то вроде события загрузки? Есть ли у этого мероприятия недостатки? Знаете ли вы какие-либо альтернативы и зачем их использовать?
Событие load
возникает в конце процесса загрузки документа. На данный момент все объекты в документе находятся в DOM, а все изображения, скрипты, ссылки и подфреймы завершили загрузку.
Событие DOM DOMContentLoaded
сработает после создания DOM для страницы, но не дожидайтесь окончания загрузки других ресурсов. Это предпочтительнее в некоторых случаях, когда вам не нужно загружать всю страницу перед инициализацией.
СДЕЛАТЬ.
использованная литература
3. Каковы преимущества и недостатки использования Ajax?
Преимущества
- Лучшая интерактивность. Новый контент с сервера может динамически изменяться без необходимости перезагрузки всей страницы.
- Сократите количество подключений к серверу, поскольку сценарии и таблицы стилей нужно запрашивать только один раз.
- Состояние может поддерживаться на странице. Переменные JavaScript и состояние DOM сохранятся, поскольку главная страница контейнера не была перезагружена.
- В основном большинство преимуществ СПА.
Недостатки
- Динамические веб-страницы сложнее добавлять в закладки.
- Не работает, если в браузере отключен JavaScript.
- Некоторые веб-сканеры не выполняют JavaScript и не видят контент, загруженный с помощью JavaScript.
- В основном большинство недостатков СПА.
4. Объясните, как работает JSONP (и почему на самом деле это не Ajax).
JSONP (JSON с заполнением) — это метод, который обычно используется для обхода междоменных политик в веб-браузерах, поскольку Ajax-запросы с текущей страницы на междоменный домен запрещены.
JSONP работает, делая запрос к домену с другим происхождением через тег <script>
и обычно с параметром запроса callback
, например: https://example.com?callback=printData
. Затем сервер поместит данные в функцию с именем printData
и вернет их клиенту.
<!-- https://mydomain.com --> <script> function printData(data) { console.log(`My name is ${data.name}!`); } </script> <script src="https://example.com?callback=printData"></script> // File loaded from https://example.com?callback=printData printData({ name: 'Yang Shun' });
Клиент должен иметь функцию printData
в своей глобальной области видимости, и эта функция будет выполняться клиентом при получении ответа от домена с несколькими источниками.
JSONP может быть небезопасным и имеет некоторые последствия для безопасности. Поскольку JSONP на самом деле является JavaScript, он может делать все остальное, что может делать JavaScript, поэтому вам нужно доверять поставщику данных JSONP.
В наши дни CORS является рекомендуемым подходом, а JSONP рассматривается как взлом.
использованная литература
5. Расскажите об Ajax как можно подробнее.
Ajax (асинхронный JavaScript и XML) — это набор методов веб-разработки, использующих множество веб-технологий на стороне клиента для создания асинхронных веб-приложений. С помощью Ajax веб-приложения могут отправлять данные на сервер и получать их с сервера асинхронно (в фоновом режиме), не мешая отображению и поведению существующей страницы. Отделив уровень обмена данными от уровня представления, Ajax позволяет веб-страницам и, соответственно, веб-приложениям динамически изменять содержимое без необходимости перезагрузки всей страницы. На практике современные реализации обычно заменяют использование JSON вместо XML из-за преимуществ того, что JSON является родным для JavaScript.
XMLHttpRequest
API часто используется для асинхронной связи или в наши дни fetch
API.
использованная литература
6. Что имеется в виду, когда мы говорим о временной сложности алгоритма?
Временная сложность алгоритма количественно определяет количество времени, которое требуется алгоритму для выполнения, в зависимости от длины входных данных. Точно так же космическая сложность алгоритма количественно определяет объем пространства или памяти, занимаемый алгоритмом для запуска, в зависимости от длины входных данных.
7. Каковы три закона алгоритма рекурсии?
Как и роботы Азимова, все рекурсивные алгоритмы должны подчиняться трем важным законам:
- Рекурсивный алгоритм должен вызывать сам себя рекурсивно.
- Рекурсивный алгоритм должен иметь базовый случай.
- Рекурсивный алгоритм должен изменить свое состояние и перейти к базовому случаю.
Базовый случай — это условие, которое позволяет алгоритму прекратить рекурсию.
- Базовый случай обычно представляет собой проблему, которая достаточно мала, чтобы ее можно было решить напрямую.
- В алгоритме
factorial
базовым случаем является n=1.
Мы должны организовать изменение состояния, которое переместит алгоритм в сторону базового случая.
- Изменение состояния означает, что некоторые данные, которые использует алгоритм, изменены.
- Обычно данные, которые представляют нашу проблему, каким-то образом становятся меньше.
- В
factorial
n уменьшается.
8. Каким вы видите свой рост как веб-разработчика?
Получение степени — это первый шаг, я занимаюсь внештатной веб-разработкой и продолжаю учиться, чтобы идти в ногу со временем.