Антонио Чиккезе
В: Напишите о том, что вы узнали на этой неделе.
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, мне очень интересно изучать новые языки. Я знаю, что я узнал