Антонио Чиккезе

В: Напишите о том, что вы узнали на этой неделе.

A: На этой неделе мы узнали о вызовах API fetch. Как они работают и как некоторым из них нужны коды ключей, похожие на пароли, поэтому их нужно хранить в безопасности.

В: Зачем вам использовать что-то вроде события загрузки? Есть ли у этого мероприятия недостатки? Знаете ли вы какие-либо альтернативы и почему вы их используете?

О: Событие загрузки возникает в конце процесса загрузки документа. На данный момент все объекты в документе находятся в DOM, а все изображения, скрипты, ссылки и подфреймы завершили загрузку.

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

В: Каковы преимущества и недостатки использования Ajax?

A:

Преимущества

  • Лучшая интерактивность. Новый контент с сервера может динамически изменяться без необходимости перезагрузки всей страницы.
  • Сократите количество подключений к серверу, поскольку сценарии и таблицы стилей нужно запрашивать только один раз.
  • Состояние может поддерживаться на странице. Переменные JavaScript и состояние DOM сохранятся, поскольку главная страница контейнера не была перезагружена.
  • В основном большинство преимуществ СПА.

Недостатки

  • Динамические веб-страницы сложнее добавлять в закладки.
  • Не работает, если в браузере отключен JavaScript.
  • Некоторые веб-сканеры не выполняют JavaScript и не видят контент, загруженный с помощью JavaScript.
  • В основном большинство недостатков СПА.

В: Объясните, как работает JSONP (и почему на самом деле это не Ajax).

A:

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 рассматривается как взлом.

В: Расскажите об Ajax как можно подробнее.

A: Ajax (асинхронный JavaScript и XML) — это набор методов веб-разработки, использующих множество веб-технологий на стороне клиента для создания асинхронных веб-приложений. С помощью Ajax веб-приложения могут отправлять данные на сервер и получать их с сервера асинхронно (в фоновом режиме), не мешая отображению и поведению существующей страницы. Отделяя уровень обмена данными от уровня представления, Ajax позволяет веб-страницам и, соответственно, веб-приложениям динамически изменять содержимое без необходимости перезагрузки всей страницы. На практике современные реализации обычно заменяют использование JSON вместо XML из-за преимуществ того, что JSON является родным для JavaScript.

XMLHttpRequest API часто используется для асинхронной связи или в наши дни fetch API.

В: Что имеется в виду, когда мы говорим о временной сложности алгоритма?

О: Временная сложность — это понятие в области компьютерных наук, связанное с количественной оценкой количества времени, затрачиваемого набором кода или алгоритма на обрабатывать или запускать в зависимости от количества входных данных. Другими словами, временная сложность — это, по сути, эффективность, или время, необходимое программной функции для обработки заданного ввода.

В: Каковы три закона алгоритма рекурсии?

A:

Рекурсивный алгоритм должен иметь базовый случай.

Рекурсивный алгоритм должен изменить свое состояние и перейти к базовому случаю.

Рекурсивный алгоритм должен вызывать сам себя рекурсивно.

Вопрос: Каким вы видите свой рост как веб-разработчика?

A: Я вижу, что постоянно изучаю новые языки. Я чувствую, что этот класс дал мне некоторые очень базовые навыки для самообучения. Поскольку я впервые изучаю такой язык, как javascript, мне очень интересно изучать новые языки. Я знаю, что я узнал