# Неделя #4 Асинхронность и работа с сетью. Создание редактора cookie
# Подготовка к выполнению задания
Изучить все материалы четвертой недели курса в Личном кабинете.
# Что нужно сделать?
# Выполнить домашнее задание #6 (Асинхронность и работа с сетью)
- Скачайте архив с домашним заданием №6
- Перейдите в папку с архивом
- Приступаем к выполнению ДЗ №6
- Задание 6.1:
Функция должна возвращать Promise, который должен быть разрешен через указанное количество секунд
Пример:
delayPromise(3) // вернет promise, который будет разрешен через 3 секунды
Задание 6.2:
6.2.1:
Функция должна вернуть Promise, который должен быть разрешен с массивом городов в качестве значения.
Массив городов можно получить отправив асинхронный запрос по адресу
6.2.2:
Элементы полученного массива должны быть отсортированы по имени города
Пример:
loadAndSortTowns().then(towns => console.log(towns)) // должна вывести в консоль отсортированный массив городов
Страница должна предварительно загрузить список городов из этого адреса и отсортировать в алфавитном порядке.
При вводе в текстовое поле, под ним должен появляться список тех городов, в названии которых, хотя бы частично, есть введенное значение.
Регистр символов учитываться не должен, то есть "Moscow" и "moscow" - одинаковые названия.
Во время загрузки городов, на странице должна быть надпись "Загрузка..." После окончания загрузки городов, надпись исчезает и появляется текстовое поле.
Разметку смотрите в файле towns-content.hbs
Запрещено использовать сторонние библиотеки.
Разрешено пользоваться только тем, что встроено в браузер.
Задание 6.3:*
Если загрузка городов не удалась (например, отключился интернет или сервер вернул ошибку), то необходимо показать надпись "Не удалось загрузить города" и кнопку "Повторить".
При клике на кнопку, процесс загрузки повторяется заново
homeworkContainer - это контейнер для всех ваших домашних заданий.
Если вы создаете новые html-элементы и добавляете их на страницу, то добавляйте их только в этот контейнер
Пример:
const newDiv = document.createElement('div');
homeworkContainer.appendChild(newDiv);
Функция должна проверять встречается ли подстрока chunk в строке full
Проверка должна происходить без учета регистра символов
Пример:
isMatching('Moscow', 'moscow') // true
isMatching('Moscow', 'mosc') // true
isMatching('Moscow', 'cow') // true
isMatching('Moscow', 'SCO') // true
isMatching('Moscow', 'Moscov') // false
- Запустить тесты и убедиться, что они прошли
- Сделайте коммит и пуш изменений
- Создайте пулл реквест и отправьте его на проверку наставнику
# Выполнить домашнее задание #7 (Создать редактор cookie с возможностью фильтрации)
- Скачайте архив с домашним заданием №7
- Перейдите в папку с архивом
- Приступаем к выполнению ДЗ №7
- Задание 7.1:
На странице должна быть таблица со списком имеющихся cookie. Таблица должна иметь следующие столбцы:
- имя
- значение
- удалить (при нажатии на кнопку, выбранная cookie удаляется из браузера и таблицы)
Задание 7.2:
На странице должна быть форма для добавления новой cookie. Форма должна содержать следующие поля:
- имя
- значение
- добавить (при нажатии на кнопку, в браузер и таблицу добавляется новая cookie с указанным именем и значением)
Если добавляется cookie с именем уже существующей cookie, то ее значение в браузере и таблице должно быть обновлено
Задание 7.3:
На странице должно быть текстовое поле для фильтрации cookie.
В таблице должны быть только те cookie, в имени или значении которых, хотя бы частично, есть введенное значение.
- Если в поле фильтра пусто, то должны выводиться все доступные cookie.
- Если добавляемая cookie не соответсвует фильтру, то она должна быть добавлена только в браузер, но не в таблицу.
- Если добавляется cookie, с именем уже существующей cookie и ее новое значение не соответствует фильтру, то ее значение должно быть обновлено в браузере, а из таблицы cookie должна быть удалена.
Запрещено использовать сторонние библиотеки. Разрешено пользоваться только тем, что встроено в браузер
homeworkContainer - это контейнер для всех ваших домашних заданий.
Если вы создаете новые html-элементы и добавляете их на страницу, то добавляйте их только в этот контейнер
Пример:
const newDiv = document.createElement('div');
homeworkContainer.appendChild(newDiv);
- Запустить тесты и убедиться, что они прошли
- Сделайте коммит и пуш изменений
- Создайте пулл реквест и отправьте его на проверку наставнику
Дедлайн: понедельник следующей недели, в 12.00
# Как всё успеть?
Данный план является примерным ориентиром. Вы всегда можете работать в удобном для себя темпе.
# 🗓 Понедельник
Изучаем материалы по теме "Работа с сетью"
Выполняем домашнее задание 6
# 🗓 Вторник
Продолжаем изучать материалы по теме "Работа с сетью"
Сдаём домашнее задание 6 на проверку.
Вносим правки в домашнее задание №6 после проверки его наставником.
# 🗓 Среда
Изучаем материалы по теме "Browser API"
Изучаем методичку по теме "Browser API"
Выполняем домашнее задание 7
# 🗓 Четверг
Прорабатываем материалы из прикрепленных ссылок к теме "Работа с сетью"
Перечитываем методичку по теме "Browser API"
Подготовьте вопросы и запишитесь на консультацию к наставнику.
# 🗓 Пятница
Оставляем вопросы на канале #practice для вебинара "вопрос-ответ"
Сдаём домашнее задание 7 на проверку.
Вносим правки в домашнее задание №7 после проверки его наставником.
# 🗓 Суббота
В 12:00 посетить вебинар "вопрос-ответ"