Задать вопрос
  • Реально ли менять стили псевдоэлементов средствами js?

    Сделайте просто два стиля
    .el:before {
    content: 'text';
    }
    .green:before {
    color: green;
    }
    .red:before {
    color:red
    }

    <div class="el"></div>
    А с помощью js уже меняйте классы green и red
    Ответ написан
    1 комментарий
  • Почему получаю ошибку Maximum call stack size exceeded?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    У вас тут идет рекурсивный вызов геттера и сеттера (вы из геттера age вызываете геттер age). Что бы понять что значит эта ошибка - читаем как работают рекурсии и что такое "стэк вызовов".
    Ответ написан
    1 комментарий
  • Что обозначает * в этой записи 'a[href*=#]'?

    Здравствуйте. Из источника цитирую:

    a[href*="tuts"] {
    color: #1f6053; /* nettuts green */
    }
    Вот то, что нам нужно. Звёздочка означает, что указанное значение должно быть частью указанного атрибута. Поэтому этот селектор выберет и nettuts.com, и net.tutsplus.com,, и даже tutsplus.com.

    Но помните, что этот способ слишком обширен. Что, если у вас будет ссылка, не указывающая на tuts+, но имеющая в адресе слово tuts? Для составления более строго правила используйте ^ и $, указывающие на начало и конец строки соответственно.
    Ответ написан
    1 комментарий
  • Как установить свежую версию Nodejs в ubuntu?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Попробуйте к командам установки добавить впереди sudo еще, возможно, нехватает прав перетереть поверх ту версию, что уже стоит.
    Ответ написан
    2 комментария
  • Как сделать заголовок со скошеными углами?

    aliencash
    @aliencash
    Партизан
    Как-то так
    codepen.io/aliencash/pen/eJrBEx
    Правда с адаптивностью сложно. Точнее лень допиливать, давайте дальше сами...

    зы: Ах черт, у вас еще тени... (((
    Ответ написан
    1 комментарий
  • ES 2015, Coffeescript или TypeScript? Что лучше и почему?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    ES2015. и babel, поскольку это стандарт (Chrome50 поддерживает его на 91%). Ну и да, можно использовать фичи из ES2016 вроде async/await для улучшения читабельности кода.

    TypeScript это ES2015 + ES2016 stage1 + опциональная возможность объявлять типы, благодаря которой появляется возможность проводить статический анализ на этапе сборки. Это очень выгодно для очень больших проектов (именно поэтому Angular2 написан на нем, это ооочень большой проект).

    CoffeScript на сегодня не актуален, возможно этот проект получит дальнейшее развитие.
    Ответ написан
  • Где генерируется хэш пароля при авторизации - на стороне клиента или сервера?

    @fedot1325
    Пароль на сервер приходит в основном в открытом виде, можно конечно и на клиенте его перегнать в какой-нибудь sha512, но смысла в этом не очень много, оно скроет пароль в открытом виде от перехватчика, но от получения доступа не спасет. Https - единственный и самый лучший способ защиты от перехвата.
    Ответ написан
    Комментировать
  • Почему не работает JSON.stringify?

    petermzg
    @petermzg
    Самый лучший программист
    Вы походу хотели обьявить обьект
    var clients_list = { };
    А обьявили массив
    var clients_list = [ ];
    Ответ написан
    Комментировать
  • Насколько актуален сейчас infinite scroll?

    Aligatro
    @Aligatro
    Turn food and coffee into software...
    Суровое ИМХО - если бесконечный скролл как в вк например (без кнопки, автоматически через ajax подтягивает контент) то при расположении чувствительной/важной информации в футере, без шаманств пользователь туда не доберется.

    Если подразумевается инфинити как "кнопка", при клики на которую идет загрузка контента в ленту - тогда норм. Пользователи мобильных устройства вам скажут спасибо.

    Ко всему прочему ничего не мешает поставить кнопку "загрузить еще" и ниже поставить постраничный pagination.
    Ответ написан
    Комментировать
  • Насколько актуален сейчас infinite scroll?

    arutyunov
    @arutyunov
    Mooza.ru — Делаем сайты
    Сделайте как на Яндекс.Маркете: у них это совмещено.

    Это удобно, поскольку мне иногда хочется скроллить и читать отзывы, а иногда я знаю, что нужный мне отзыв на 3 или 4 странице и целенаправленно перехожу туда.

    Также иногда нужно посмотреть информацию в подвале сайта, а из-за бесконечного скролла этого не сделать — просто не успеваешь.
    Ответ написан
    Комментировать
  • Как понять что дано программировать?

    riky
    @riky
    Laravel
    Программирование может быть работой, а может быть творчеством.
    Первое для всех, второе тем кому "дано".

    Это как маляр, кто-то просто забор красит (это дано всем), а кто-то картину пишет. Вроде и те и те просто берут краски кисточку и работают. Но первым может любой стать а второе не всем дано. А нужны и те и те.

    Поэтому ставьте вопрос для чего. Тупо заработать - дано всем. А творчество - у себя спросите - интересно это вам?

    Готовы свободное время тратить на это?
    Ответ написан
    3 комментария
  • Нужно ли использовать аттрибутивные селекторы?

    DevMan
    @DevMan
    имхо, селектор по атрибуту стоит использовать только тогда, когда нет иных способов.

    https://developer.mozilla.org/en-US/docs/Web/Guide...
    https://benfrain.com/css-performance-revisited-sel...
    https://css-tricks.com/efficiently-rendering-css/
    https://smacss.com/book/selectors
    Ответ написан
    Комментировать
  • Как работает this?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ох...

    Для начала нам стоит прояснить что в javascript "методы" это обычные функции, которые просто привязаны к объекту. Если не вдаваться в подробности работы интерпритатора, вы можете спокойно вынести содержимое конструктора и заменить this на экземпляр объекта.

    Если совсем упростить - в javascript нет "методов", у объектов могут быть только свойства. "Методы" реализуются присваиванием функции (обычно анонимной) к свойству объекта.

    Теперь про this. this - это контекст вызова. Это "волшебная" переменная указывает на контекст, в котором мы вызвали какую-либо функцию. Она никак не фиксируется, и мы можем крутить и вертеть ей как хотим.

    По умолчанию она указывает на "владельца" функции. Тот объект, в контексте которого мы вызвали функцию.

    function foo() {console.log(this);}
    
    function MyObject() {
        this.foo = foo;
    }
    
    var hashMap = {
        foo: foo
    };
    
    var obj = {};
    var instance = new MyObject();
    obj.bar = instance.foo;  // мы можем даже красть методы
    
    foo(); // выведет window, если для браузера и мы вызывали в глобальном контексте
    instance.foo(); // выведет instance так как в контексте этого объекта мы это дело и вызывали
    hashMap.foo(); // выведет hashMap по той же причине
    obj.bar(); // выведет obj опять же потому что мы вызывали функцию в этом контексте
    foo.call('my own context') //мы можем задать свой контекст


    Зачем присваивается this и используется в дальнейшем?


    У функции есть своя область видимости. Ей доступны все переменные/идентификаторы которые определены в ее области видимости и выше в плодь до глобальной. То есть наши обработчики событий будут всегда видеть переменные объявленные в конструкторе. Причем именно то что было на момент вызова конструктора (то есть сохраняется во времени даже после завершения работы функции). Это к слову является типичной проблемой мемориликов, так как иногда люди забывают почистить за собой ссылки на объекты.

    У нас конечно есть еще функция bind, которая позволяет явно зафиксировать контекст, но иногда удобнее так.

    Именно за счет областей видимости функций в javascript мы достигаем инкапсуляции, скрываля приватные штуки внутри нашей области видимости и выплевывая наружу только то, что нужно. Самая настоящая инкапсуляция, модификаторы доступа в этом плане - просто кастыли (хотя для восприятия они проще).
    Ответ написан
    12 комментариев
  • Как реализовать поиск по json?

    @Kusmich
    Для фильтрации массивов можно использовать функцию Array.prototype.filter

    Для фильтрации по конкретному полю

    var search = "text"
    var result = arr.filter(function(el){
        return el.fieldName.indexOf(search) > -1;//fieldName - поле по которому нужно фильтровать
    });

    Если искать нужно сразу по всем полям, то функцию фильтра можно модифицировать, например, так

    var search = "text"
    var result = arr.filter(function(el){
        for(var field in el){
            if(el[field].indexOf(search) > -1){
                return true;//если нашли хотя бы одно поле содержащее искомую строку, оставляем объект
            }
        }
        return false;
    });
    Ответ написан
    Комментировать
  • Как вытаскивать элементы из DOM?

    petermzg
    @petermzg
    Самый лучший программист
    Сохраните элемент на dragstart, хотябы в windows.dragTempObject,
    а на drop возьмите его и назначьте ему нового родителя в нужном вам месте.
    Ответ написан
    Комментировать
  • Как правильно понять такой вызов функции?

    petermzg
    @petermzg
    Самый лучший программист
    Эта функция getFunc() возращает функцию, которая запомнила свое окружение, т.е. локальную переменную "а".
    А далее идет вызов функции, что была возращена. getFunc()();
    Ответ написан
    5 комментариев
  • Что такое распределенная система?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal.


    Мне кажется более чем понятное определение.

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

    Это один из основных подходов при построении реально больших проектов. Можеет так же почитать про микросервисы и другие схожие подходы.
    Ответ написан
    Комментировать
  • В чем моя ошибка с empty?

    @akeinhell
    Не забывай проверять файл на существование
    Смотри относительные и абсолютные пути к файлу
    $img = '/images/photo/photo.jpg';
    
    if ($img !== '' && file_exists($img)) 
    {
       echo '<img src="'.$img.'" width=400 height=400>'; 
    }
    Ответ написан
    1 комментарий