# Неделя #4 Асинхронность и работа с сетью. Создание редактора cookie


# Подготовка к выполнению задания

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

# Что нужно сделать?

# Выполнить домашнее задание #6 (Асинхронность и работа с сетью)

  1. Скачайте архив с домашним заданием №6
  2. Перейдите в папку с архивом
  3. Приступаем к выполнению ДЗ №6
  4. Задание 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
  1. Запустить тесты и убедиться, что они прошли
  2. Сделайте коммит и пуш изменений
  3. Создайте пулл реквест и отправьте его на проверку наставнику
  1. Скачайте архив с домашним заданием №7
  2. Перейдите в папку с архивом
  3. Приступаем к выполнению ДЗ №7
  4. Задание 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);
  1. Запустить тесты и убедиться, что они прошли
  2. Сделайте коммит и пуш изменений
  3. Создайте пулл реквест и отправьте его на проверку наставнику

Дедлайн: понедельник следующей недели, в 12.00

# Как всё успеть?

Данный план является примерным ориентиром. Вы всегда можете работать в удобном для себя темпе.

# 🗓 Понедельник

Изучаем материалы по теме "Работа с сетью"

Выполняем домашнее задание 6

# 🗓 Вторник

Продолжаем изучать материалы по теме "Работа с сетью"

Сдаём домашнее задание 6 на проверку.

Вносим правки в домашнее задание №6 после проверки его наставником.

# 🗓 Среда

Изучаем материалы по теме "Browser API"

Изучаем методичку по теме "Browser API"

Выполняем домашнее задание 7

# 🗓 Четверг

Прорабатываем материалы из прикрепленных ссылок к теме "Работа с сетью"

Перечитываем методичку по теме "Browser API"

Подготовьте вопросы и запишитесь на консультацию к наставнику.

# 🗓 Пятница

Оставляем вопросы на канале #practice для вебинара "вопрос-ответ"

Сдаём домашнее задание 7 на проверку.

Вносим правки в домашнее задание №7 после проверки его наставником.

# 🗓 Суббота

В 12:00 посетить вебинар "вопрос-ответ"