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

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

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

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

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

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

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

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

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

Александр Хиренко

Front-end developer
  • 108
    вклад
  • 1
    вопрос
  • 140
    ответов
  • 46%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как правильно ораганизовать long polling?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Обычно такие запросы обрубаются таймаутом.
    Т.е. нужно просто сделать лимит для запроса примерно 60 сек. и отдавать какую-то ошибку на клиент, а там биндите ее и делаете реконект.
    Ответ написан более трёх лет назад
    9 комментариев
    9 комментариев
  • Как вы относитесь к расширению прототипов нативных объектов?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Во первых, а где гарантия что вот таким способом Вы не затрете нативную реализацию, а даже если и будете проверять, то опять же, нету никакой гарантии что работать они будут одинаково?
    Во вторых, Вы молодец, расширили прототип и спокойно пользуетесь, пришел новый разработчик на ваше место, смотрит, а там arr.last() и давай он разбираться где же оно взялось и как работает.

    В реальной жизни с таким не сталкивался, может просто повезло, а может из-за того что в любой книге по JavaScript написано "Не расширяйте нативные объекты!"

    На мой взгляд, расширять нативные объекты можно только в случае полифилов.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Используете ли Вы дескрипторы в JS, если да, то в каких ситуациях?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Ну самый распространенный, но не самый разумный, вариант использования - расширение существующих прототипов (Object.prototype, Array.prototype), потому что с помощью дескрипторов можно настроить метод/свойство не перечисляемым (enumerable:false) и можно не бояться что при переборе for(key in myObject ) методы, которые Вы добавили, будут участвовать в переборе.

    Лично я использую для методов и свойств прототипов, чтобы при переборе не использовать hasOwnProperty() и более гибко настроить доступ к ним.

    Сеттеры и геттеры - в зависимости от задач. Допустим, для получения количества записей в коллекции гораздо лаконичней и правильней смотрится Collection.size нежели Collection.size()
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать динамическую таблицу/матрицу JavaScript?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Очень советую Вам в таких случаях использовать documentFragment
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему так не работает?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    А зачем Вы переопределяете переменную внешнего scope внутренним?
    Зачем вообще эта строчка var a=a; в функции f() переменная a и без этого будет доступна.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Хранение деревьев в Mysql какие есть способы?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Структура БД примерно такая:
    id - id категории
    parent_id - id родительской категории (0 для категории первой вложенности)
    sort_id
    name

    Для выборки в PHP используйте рекурсию.

    Примеров в сети валом
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как вставить переменную в первый элемент ассоциативного массива?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    На сколько я понял Вам нужно сделать значение переменной id ключом arr, если да, то так:
    var id = 'test', num = 141241, num2 = 12424;
    var arr = {str: num};
    arr[id] = num2;
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать смену обработчика jQuery?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Не учитесь у дяди @melnikov_m плохого. Используйте делегированные события там где это необходимо.
    Проблема несрабатывания второго события, действительно, заключается в том что Вы навешиваете событие на пока несуществующий элемент .btn2.
    В данном же случае Вы можете навесить второе событие внутри первого и в первом использовать one. Но хоть убейте, не пойму зачем Вам это? Можно же все реализовать и в первом.
    Ответ написан более трёх лет назад
    8 комментариев
    8 комментариев
  • Как проверить, функция-конструктор вызван посредством оператора new или без него?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    function Test() {
    if (this instanceof Test) {
        /* code... */
    }
    else {
        return false;
    }
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему неправильно работает условие?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Интересная у вас проверка на существование, Вы id новости сравниваете с количеством всех статей :)
    $query = mysql_query("SELECT COUNT(*) FROM news WHERE id='".$get_news."'"");
    а проверять так if($row[0] > 0)

    Но зачем Вам это, Вы можете проверять результат непосредственно этого запроса:
    "SELECT * FROM news WHERE id='".$get_news."'"
    а не делать отдельный запрос COUNT(*), в этом нет никакого смысла.
    А еще очень советую Вам использовать PDO.
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Как масштабировать контент в div?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    А CSS media queries Вам не подходят?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как привязать контейнер с изображением к правому нижнему углу?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    #button_up {
    position: fixed;
    right:0;
    bottom:0;
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как оптимизировать JS код?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Модульный подход, в основном, предназначен для удобства использования/изменения и структурирования кода, и да, с ним бы я советовал Вам заморочиться, потому что если и не Вам то кому-то другому придется его поддерживать, а в силу того что это файл с кучей непонятных ф-й и плагинов, даже Вы через какое-то время забудете что же происходит в том или ином участке кода. Так же модульный подход предполагает многократное его использование, что тоже не мало важно.

    По поводу оптимизации - нужно видеть код. В общем это использование делегированных событий там где это нужно, использование DocumentFragment для вставки в DOM, грамотное использование jQuery, CSS3 анимация и т.д. Обо всем этом Вы можете найти множество статей и примеров.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что выбрать для поиска по сайту?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Можете копнуть в сторону FULLTEXT в MySQL
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать периодическое изменение значения поля в базе данных?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Можете попробовать воспользоваться событиями в MySQL (если используется MySQL)
    habrahabr.ru/post/123391
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Передача аргументов в функцию через аргумент, js?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Нет. Внутри функции это всегда будет один и тот же аргумент.
    Если Вам нужно получить массив аргументов функции то воспользуйтесь переменной arguments
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Сколько длится время токена авторизации Вконтакте?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Если я правильно понимаю вопрос, то при получении токена Вы можете указать в scope параметр offline и в этом случае токен бесконечен.
    vk.com/dev/permissions
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать фото со стрелочкой?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Можно как-то так:
    jsfiddle.net/y5qytwxt

    Если нужны тени то их тоже вполне реально реализовать на CSS3, не стал заморачиваться.
    Ну и решение только для одноцветного фона.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что сделать с кнопками, которые прыгают при hover'е?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Если я правильно понял, в чем проблема то вместо:
    margin-left: 10px;
    используйте что-то вроде:
    border-left:#FFF 10px solid;
    в :hover
    Ответ написан более трёх лет назад
    9 комментариев
    9 комментариев
  • Как решить проблему с назначением свойств css через JS?

    Satanpit
    Александр Хиренко @Satanpit
    Front-end developer
    Можно еще так :)
    $(document).ready(function() {
        var child = $('.child');
        
        $('.parent').hover(function() {
            child.show();
        }, function() {
            child.hide();
        });
    });


    jsfiddle.net/b2nU8
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • Следующие →
Самые активные сегодня
  • Drno
    • 7 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 7 ответов
    • 0 вопросов
  • gim0
    Андрей Мывреник
    • 7 ответов
    • 0 вопросов
  • vovka3003
    Владимир Шаблий
    • 6 ответов
    • 0 вопросов
  • morfiscam
    Кирюшка
    • 3 ответа
    • 1 вопрос
  • mrsexy
    Alfieros
    • 3 ответа
    • 1 вопрос
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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