Ответы пользователя по тегу JavaScript
  • Как добавить элементы в массив?

    KulakovAngel
    @KulakovAngel
    Full Stack Developer (Node.JS)
    Необходимо понимать, что возвращает метод Sever.GetUsers();. Допустим, он возвращает массив (или другую итерируемую сущность) id-шников.
    Тогда есть много способов, начиная от Array.from(); или решения, предложенного twobomb, и заканчивая чем-то вроде
    const users = Sever.GetUsers();
    const desc = []; // пустой массив, куда будем складывать имена
    
    for (i = 0; i < users.length; i++) {
      const name = Server.GetName(users[i]);
      desc.push(name); // добавляем имена в массив
    }
    
    console.log(desc); // ["Вася","Петя","Саша","Рома"]
    Ответ написан
    Комментировать
  • Какие методы отправки http запросов сейчас наиболее современные, актуальные?

    KulakovAngel
    @KulakovAngel
    Full Stack Developer (Node.JS)
    Если Вы находитесь на стадии обучения основам JS/front-end, вначале изучите XMLHttpRequest и технологию HTTP (основы). На основе него создана промис-обертка (гораздо удобнее в реальном использовании) - Fetch. Но и это еще не конец.

    В реальной разработке часто используют готовые решения, упрощающие решение. Например, для разработки клиента часто используют React, Vue, Angular и др.. Для управления состоянием приложения - Redux, MobX и др.. Так вот, хорошая библиотека для выполнения запросов - это Axios. Чем она лучше Fetch? Во-первых, самостоятельно парсит тело ответа (например, в/из JSON), отправляет необходимые заголовки. Сравните:
    fetch('https://jsonplaceholder.typicode.com/users')
        .then(res => res.json())
        .then(users => dispatch(addUsers(users)));
    
    axios('https://jsonplaceholder.typicode.com/users')
        .then(users => dispatch(addUsers(users)));

    Также axios добавляет много полезностей - заголовки ответа вместе с телом в одном объекте, выброс исключения при ошибочных кодах состояния ответа сервера, кастомизация, несколько экземпляров и прочее, хотя, скорее всего, это все Вы изучите и поймете позже.

    Стоит понимать разницу между AJAX, XMLHttpRequest, Fetch, Axios.
    • AJAX - технология опроса сервера без перезагрузки (противовес ей - отправка данных кнопкой submit или ссылкой "a href="""). Чаще всего сегодня данными сервер и клиент обменивается через JSON
    • jQuery.ajax() - метод библиотеки jQuery, обертка над XMLHttpRequest. Т.е. библиотека.
    • XMLHttpRequest - объект браузера (BOM), позволяющий отправлять запросы к серверу, т.е. реализация упомянутой в первом пункте технологии AJAX
    • Fetch - более современный метод, использующий промисы. Более удобен, но под капотом используется XMLHttpRequest, естественно.
    • Axios - одна из библиотек (т.е. ее нужно подключать, как, например, тот же jQuery), наверное, самая распространенная, еще более упрощающая реальную разработку.


    Изучайте архитектуру на React (или др. фрэймворке), и увидите насколько проще использовать axios.
    Ответ написан
    2 комментария
  • Как передать через fetch() на бекенд картинку?

    KulakovAngel
    @KulakovAngel
    Full Stack Developer (Node.JS)
    Есть смысл сгенерировать картинку в формате строки base64 и потом JSON-ом передавать на бекенд?

    Думаю, смысл есть. Нужно знать контекст. Смотря что разрабатываете. Смотря что ожидает сервер. Смотря, как хранятся данные. Скажем, если у Вас RestFull API, и общение с сервером происходит на основе JSON, то я бы и картинку передавал в JSON, как Вы и написали. Если же это "доделка" к, скажем, WordPress, или другой CMS, и она ожидает именно картинку, то см. ответ Выше (Tim).
    Ответ написан
    Комментировать