Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

sumrakx

  • 0
    вклад
  • 19
    вопросов
  • 4
    ответа
  • 25%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Почему не открыт порт 80 при инициализации VM?

    saboteur_kiev
    Saboteur @saboteur_kiev
    software engineer
    Только вот никаких деталей в вопросе нет.
    Каким тутором пользуешься?
    Какой веб сервер ставил?
    Локально вообще страничка открывается?

    Я за 3 минуты поднял инстанс и поставил apache после чего зашел по внешнему ip без туторов.
    Просто обычный ubuntu minimal, при создании машины галочки открыть 80 и 443 порт есть отдельными опциями.
    Ну и "sudo apt-get update && sudo apt-get install apache2 -y"
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Почему не работает проверка на NaN?

    Xuxicheta
    Антон Швец @Xuxicheta
    инженер
    NaN == NaN // false

    Используйте isNaN
    isNaN(NaN) // true
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Для Vue какие есть лучшие formbuilder?

    boratsagdiev
    Alexander @boratsagdiev
    Если не нужен визуальный редактор, то https://github.com/vue-generators/vue-form-generator конечно. JSON-based генерация форм.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Передача данных на беке по фтп плохо?

    fox_12
    Владимир Куц @fox_12
    Расставляю биты, управляю заряженными частицами
    Так а чем rsync, scp и прочие не устраивают? Помимо вопросов безопасности, как по мне - ftp пользоваться банально не удобно, когда есть более защищённые и продвинутые альтернативы.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как достичь эффекта резки картинки?

    sabramovskikh
    Сергей @sabramovskikh
    Ну там же есть ссылки на гитхаб. Возьмите и посмотрите
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как скрыть блок при повторном нажатии на javascript?

    RAX7
    RAX7 @RAX7
    Потому что ты сначала удаляешь класс .show со всех .dropdown2-content
    for (i = 0; i < dropdowns.length; i++) {
                var openDropdown = dropdowns[i];
                openDropdown.classList.remove('show');
            }

    А затем опять его добавляешь, но уже для нажатого элемента.
    document.getElementById(id).classList.toggle('show');

    https://jsfiddle.net/t1hjyc9s/
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как скрыть блок при повторном нажатии на javascript?

    0xD34F
    0xD34F @0xD34F Куратор тега JavaScript
    function navFunction(id) {
      document.querySelectorAll('.dropdown2-content').forEach(n => {
        n.classList[n.id === id ? 'toggle' : 'remove']('show');
      });
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как предотвратить взлом сайта на VDS сервере?

    dimonchik2013
    Dimonchik @dimonchik2013
    non progredi est regredi
    такое проще всего правилами файрволла прикрыть, но, скорее всего, шелл на сайте с полными правами
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как выполнить код до отрисовки компонентов?

    jazzus @jazzus
    Сделать props/параметр show: false и показывать по условию
    например сделать в теге/компоненте v-if="show" а сам show включить, когда нужный код выполнится (т.е. сделать this.show = true)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как запретить копировать (сохранять) файлы с сайта?

    webenbond @webenbond
    Нельзя запретить, усложнить можно... но тот кто хочет, все равно получит.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как запретить копировать (сохранять) файлы с сайта?

    amark
    Артур К. @amark
    rush less, feel more
    Для чего вам это? Вы разработали новую инновационную систему, у которой нет аналогов? И вам кажется, что ваш гениальный скрипт кто-то украдет и наживется на этом?

    Если да, то сделайте тройную обфускацию скриптов; а всё, что можно выполнить на сервере, вытаскивайте из скриптов и передавайте в работу на сервер.

    Однако, что-то мне подсказывает, что вам просто показалось, что кому-то есть дело до ваших скриптов и стилей. Так может лучше потратить своё время на что-то более приятное? Выучить новый язык или фреймворк, например))
    Ответ написан более трёх лет назад
    10 комментариев
    10 комментариев
  • Решение для реализации editable data table?

    amark
    Артур К. @amark
    rush less, feel more
    Рекомендую серединное решение между jq и react/angular — это небольшой backbone. Он так умеет.
    Могу подробно расписать с описанием преимуществ и всё такое, но будет продуктивнее, если вам удастся самостоятельно найти в этом плюсы для себя.
    Кстати, весит это чудо 6.3кб для прода.

    Еще одно не менее простое решение — это реализации на бутстрапе. Вот один пример, первый в гугле по запросу "editable table bootstrap".

    И, скорее всего, эти два решения будет выгодно объединить. Бутстрап будет шаблоном для бэкбона, который в свою очередь будет заниматься синхронизацией данных и отправкой результата редактирования на сервер.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Решение для реализации editable data table?

    svistiboshka
    Андрей @svistiboshka
    живые веб интерфейсы
    тут 2 решения
    1. подставляйте input в нужное место
    2. contenteditable="true"
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Не могу получить данные с api c помощью fetch?

    john36allTa
    Somewhere Intech @john36allTa
    alien glow of a dirty mind
    Вам приходит response opaque (т.е. по сути reject).
    А данные у Вас не получится обработать .json() потому, что они xml.
    Цитата с хабра

    Что касается «opaque» — то он приходит в случаях, когда выполняется CORS запрос, но удаленный ресурс не возвращает CORS заголовки. Данный тип запроса не предоставляет доступ данным или заголовку статуса, поэтому мы не имеем возможности судить о результате выполнения запроса. В рамках текущей имплементации fetch() не представляется возможности выполнять CORS запросы из скоупа window, и вот здесь написано почему. Эта функциональность должна быть добавлена, как только Cache API станет доступным из объекта window.

    Источник
    Как вариант, если очень нужно получать эти данные с клиента, можно использовать ServiceWorkers.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какой CMS движок учить начинающему?

    Вадим В @reyzele
    Программист
    Для фриланса WORDPESS подойдет. Но встанет вероятно вопрос - зачем тогда вообще учить html, css, js... За счет консткурторов делая заказы на WP не нужно практически знать все это...
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как инициализировать VUE компонет?

    Kozack
    Alex @Kozack Куратор тега Vue.js
    Thinking about a11y
    Ну, обычно инициализируете данные по умолчаию, возможно добавляете состояние прелоадера, а когда ваши данные из БД (или ещё откуда) придут — заменяете
    {
      template: `
        <div>
          <preloader v-if="!pageData" />
          <div v-else >
            ...
          </div>
        </div>
      `,
    
      data() {
        return {
          pageData: null
        }
      },
    
      async mounted() {
        this.pageData = await getData()
      }
    }
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как решить проблему со скриптом?

    boyarskiy_mihail
    Юрик Булкин @boyarskiy_mihail
    Наверное потому что res.send(results[0]);
    results[0] - 1 элемент массива
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как проверить, имеется ли часть объекта в массиве объектов?

    zendor
    zendor @zendor
    Как то так:
    const arr = [];
    const obj = {name: 'John', surname: 'Doe'};
    if (arr.every(o => o.name != obj.name || o.surname != obj.surname)) arr.push(obj);

    Сработает даже с пустым массивом так как [].every(v => v); // true
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как развернуть вложенный массив?

    hack504
    hack504 @hack504
    Только рекурсивно.

    const nested = {
      id: 1,
      children: [
        { id: 2 },
        { id: 3,
          children: [{ id: 5 }, { id: 6 }]
        },
        { id: 4 }
      ]
    }
    
    const flatten = function(obj) {
      const array = Array.isArray(obj) ? obj : [obj];
      return array.reduce(function(acc, value) {
        acc.push(value);
        if (value.children) {
          acc = acc.concat(flatten(value.children));
          delete value.children;
        }
        return acc;
      }, []);
    }
    
    flatten(nested); // => [ { id: 1 }, { id: 2 }, { id: 3 }, { id: 5 }, { id: 6 }, { id: 4 } ]
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как развернуть вложенный массив?

    akavato @akavato
    frontend dev
    Если я правильно понимаю, тебе нужно сделать плоский массив.
    глянь реализацию flatten и flattenDeep в lodash
    или тут готовое: MDN
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • Drno
    • 8 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 8 ответов
    • 0 вопросов
  • Vindicar
    Vindicar
    • 4 ответа
    • 0 вопросов
  • phaggi
    Алан Гибизов
    • 4 ответа
    • 0 вопросов
  • Евгений
    • 4 ответа
    • 0 вопросов
  • Алексей Гончаров
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации