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

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

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

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

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

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

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

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

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

vetsmen

  • 25
    вклад
  • 150
    вопросов
  • 30
    ответов
  • 60%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как вернуться в позицию элемента, после добавлении новых элементов выше него (scrollTo после prepend)?

    vetsmen @vetsmen
    1) Как ты и сказал в объекте с новым постом добавлять параметры размера изображения, тем самым не дожидаясь загрузки можно будет точно определить новое положение скролла с сохранением позиции старого блока относительно экрана.
    При этом нужно будет при обновлении DOM дерева для каждого нового поста до полной загрузки изображения прописывать ее высоту в стилях.

    2) Второй вариант имел бы место быть, если выводить каждый пост по отдельности, при отслеживании onload изображения этого поста (инициализируем пост в DOM -> ждем загрузку изображения -> делаем скролл -> инициализируем следующий пост в DOM дерево), однако при плохом интернет соединении или при изображениях большого размера контент будет прыгать туда сюда.
    При отслеживании onload на всех изображениях сразу минусы ты уже сказал.

    Вывод: только передавать высоту с сервера, никак иначе. Высоту изображения до его загрузки ты никак не узнаешь.
    Если возможности вообще никакой нет ее получить, задавай фиксированную высоту всем изображениям и показывай оригинальный размер при полном просмотре либо оборачивай в спойлер какой-нибудь, других путей нет.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать проверку на число?

    vetsmen @vetsmen
    Что-то вроде этого:
    function enterNumber(){
    	var number = +prompt('Введите количество чисел, которое хотите записать: ');
      check(number);
    }
    
    function check(number){
        if(isNaN(number)) {
            console.log('Введите число, а не символьный элемент'); 
            return enterNumber();
        } else {
            return console.log('Отлично, введено число')
        }
    }
    
    enterNumber();
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как защитить данные при передаче и хранении в веб-приложении от перехвата/изменения?

    vetsmen @vetsmen
    Кратко и понятно о JWT
    После первого логина, клиенту возвращается сгенерированный сервером JWT. При каждом следующем запросе, клиент должен передавать JWT установленным API способом (например, через заголовок или как параметр запроса). Сервер декодирует header и payload и проверяет зарезервированные поля. Если все в порядке, по указанному в header алгоритму составляется подпись. Если полученная подпись совпадает с переданной, пользователя авторизуют.

    В добавок к этому могу дополнить следующие шаги: мы удостоверились, что пользователь авторизован, и имеем на сервере payload (Это такой объект, в котором содержится все необходимые нам данные: userid и прочие. Формировали мы его тогда, когда генерировали наш JWT и отдавали его клиенту).
    Далее делаем все, что душе угодно. К примеру, берем из payload userid пользователя, ищем его в БД, в ней уже смотрим права пользователя, и разрешаем или запрещаем какие-то действия.

    Но есть одно но: если кто-то получит secret_key с сервера, считайте, что он получит доступ ко всем аккаунтам приложения.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать, чтобы скролл у popup не был виден, но работал? И чтобы popup появлялся плавно?

    vetsmen @vetsmen
    Как скрыть скролл?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как поэтапно выводить текст (шрифт прописной рукописный)?

    vetsmen @vetsmen
    Первое, что приходит в голову, это преобразовывать текст в SVG элемент и по очередности анимировать path элементы, как тут: https://codepen.io/ghepting/pen/xnezB
    Пожалуй, более легкого способа для полноценной имитации рукописного ввода нет, если не банальный побуквенный вывод текста с нужным шрифтом
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Canvas - fabric.js границы изображения?

    vetsmen @vetsmen
    У тебя отрисовываются границы только внутри canvas. Попробуй увеличить его ширину и поместить свой объект телефона по центру, тогда можно будет спокойно перемещать границы за него и видеть их. Единственное, какую проблему нужно будет решить - это как скрыть контент за границами телефона.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Авторизация через соц. сети в концепции SPA?

    vetsmen @vetsmen Автор вопроса
    Кому интересно решение данной задачи: все предельно просто.
    Сначала создаем pop-up окно, авторизовываемся в нем и редиректимся на нашу страницу прослойку, там мы имеем уже наш jwt токен (или любой другой) и через window.opener мы можем вызвать любой метод в родительском окне. К примеру: window.opener.setToken('{token}'), перед этим определив функцию в родительском окне:
    window.setToken = function(token){ /* записываем наш токен */}
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как отобразить на сайте курсоры мышек посетителей?

    vetsmen @vetsmen
    Сделать то можно. На клиенте юзать событие mousemove, определять положение мыши относительно какого-то определенного div блока (x, y координаты) и отправлять сокетами на сервер, там хранить массив всех курсоров пользователей (массив x, y координат).
    При инициализации страницы отдавать этот массив на клиент, отрисовывать блоки (с position: absolute) с определенными отступами, которые будут зависеть от полученных координат x и y, а так же слушать сокет, который будет отдавать обновленные координаты курсоров при их изменении.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать приклеенную шапку?

    vetsmen @vetsmen
    При загрузке страницы вызывай событие, отслеживай текущее положение скролла и вызывай соответсвующую функцию
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Не могу сделать адаптивное меню?

    vetsmen @vetsmen
    $('.nav_trigger').click(function(e){
      $('.nav_menu').stop().slideToggle(300);
    });
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать показ статистики нажатий на кнопку?

    vetsmen @vetsmen
    Убери событие клика и будет тебе радость
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Border-radius округляет весь блок, а как закруглить только уголки?

    vetsmen @vetsmen
    Используй не процентное соотношение, а пиксельную величину.
    Т.е. https://jsfiddle.net/4qn2Lnht/7/
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему в while не сохраняется значение счётчика?

    vetsmen @vetsmen
    Все добавляется, просто у тебя значение в urls quantity стоит 1, по условию while (i<inputQty)у тебя сначала идет 1 < 2 => поле добавляется, после 2 < 2 => ничего не происходит
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как вы обрабатываете нестандарные порты при разработке JS приложений?

    vetsmen @vetsmen
    Выводи IP адрес в конфиг, проблема отпадет
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать, чтобы при каждом нажатии изменялось значение?

    vetsmen @vetsmen
    $('#btn-10').on('click', function(){
       var $block = $('.my-blnc');
       var data = parseInt($block.html()) - 10;
       $block.html(data);
    });
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как правильно заполнить select опциями из объекта Json?

    vetsmen @vetsmen
    Сначала парси объект, котом только доставай из него значение
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Проблема с хранением сессий в redis store?

    vetsmen @vetsmen Автор вопроса
    Какой уже раз думаю, что проблема в одном, а на самом деле оказывается совсем в другом.
    Решено, с редисом в этом плане все нормально.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Socket.io и internet explorer?

    vetsmen @vetsmen Автор вопроса
    Решение - IE ругался на другие моменты в коде, поэтому не работали сами сокеты.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Число подключений к socket.io?

    vetsmen @vetsmen Автор вопроса
    Что-то одни подписки на тему, ответов нет, никто не знает как решить данную проблему?
    Есть идея смотреть на минимальный обмен данными через сокеты и по этим данным ориентироваться, но может быть есть куда более выгодные решения?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • С чего начать ребёнку программировать?

    vetsmen @vetsmen
    Загуглите приложение MCreator, оно поможет вашему сыну создавать модификации для игры Minecraft, не зная самого языка программирования.
    А чтобы идти глубже - нужно знание Java, Bukkit API & Forge API
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • Evgenii
    • 19 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 7 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 6 ответов
    • 0 вопросов
  • hint000
    hint000
    • 5 ответов
    • 0 вопросов
  • zdev-online
    • 5 ответов
    • 0 вопросов
  • Sozdavan
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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