• Как правильно сформировать следующий массив (native javascript)?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    const players = data[0].locations[0].players;
    const holes = new Array();
    for (player of players){
    	holes.filter(f=>f.id === player.holeId).length === 0 ? holes.push({id: player.holeId, value: player.score}) : holes.filter(f=>f.id === player.holeId)[0].value+= player.score;
    }
    Ответ написан
    1 комментарий
  • Как послать данные, полученные расширением, на другую страницу или сервер?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Точно также, ajax post/get с бэкграунда. Если на чужой сервер и проходит валидация то симулировать реальную ситуацию (написать и запустить скрипт на странице отправки).
    Ответ написан
  • Как реализовать расположение элемента, на картинке?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    После загрузки фото на сайт, оно отображается пользователю. Он в свою очередь рисует на нём прямоугольник (отмечает лицо) и добавляет подпись ниже (или где нибудь ещё). Нарисовать прямоугольник на фото можно c помощью JS. Родитель img имеет свойство CSS position relative, img и все наложения на него absolute. Прямоугольник можно нарисовать обычным DIV с border и для красоты border-radius к примеру, перемещать и масштабировать с помощью свойств CSS top left width height. Можно конечно и с canvas заморочиться, если нужен UI по интереснее.
    Ответ написан
    Комментировать
  • Chrome websocket. Что такое binary frame?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    ws = WebSocket, оно либо TCP либо UDP
    Binary frame - это бинарные данные, которые передаются сервер <->клиент
    Объяснять их структуру долго - RFC/Google в помощь (там всё просто в принципе)
    Правда, если https соединение то нужно учитывать крипту =(
    Ответ написан
    Комментировать
  • Как изменить класс у шапки при скролле FullPage.js?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    new fullpage('#fullpage', {
    	anchors: ['firstPage', 'secondPage', 'thirdPage'],
    	onLeave: function(origin, destination, direction){
    		var loadedSection = this,   
    			  header = document.querySelector("header.header");
    		//using index если прозрачный = фон
    		if(origin.index == 0 and direction =='down'){
    			header.style.opacity = 0; 
    		}
    		else if(origin.index == 1 and direction =='up'){
    			header.style.opacity = 1;
    		}
    		//using anchorLink если прозрачный = цвет фона
    		if(origin.anchor == 'firstPage' and direction =='down'){
    			header.style.backgroundColor = 'transparent'; 
    		}
    		else if(origin.anchor == 'secondPage' and direction === 'up'){
    			header.style.backgroundColor = 'white';
    		}
    	}
    });
    Ответ написан
    4 комментария
  • Как сделать так, чтобы элемент (Например div) не перезагружался вместе со всей страницей?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Если не лень и не жалко - зачем?(просто интересно)
    Ответ написан
    Комментировать
  • Как правильно сохранять данные из массива в базе данных Mysql?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Я бы хранил такое только в JSON (ну "везде присутствующие" свойства, конечно, можно вынести отдельно и даже приписывать типы каждой строке для того, чтобы отличать их). Easy на фронте- toString/JSON.parse, также и в тылу. Только вот от инъекций надо защищать, тыл держать прикрытым =))
    Ответ написан
    Комментировать
  • Как заполнить двумерный массив?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    не знаю QBasic, ну точнее не помню уже что там по словарю, но пищу к размышлению дам:
    1. заполнить первый(нулевой?) индекс массива рандомом.
    2. проходя по первому фором делать рандом (NUM = Rand(0, 100) - это я не поленился загуглить=)) и если меньше или равен 50 - то кидать в массив(второй/первый индекс) -1, а больше - кидать число из первого индекса.
    3. при "рендеринге" отсылать -1 в dev/null =)
    Ответ написан
    Комментировать
  • Как настроить подключения по локальному hostname?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Заходили по hostname в windows = ПК по протоколам netbios/smb/или другому себе родному... получил ip и запомнил себе куда-нибудь в datashit =)
    Не уверен, что помогу, но я бы попытался решить так:
    1. При первом подключении ПК в сеть - имя ПК в сети уникально относительно остальных и рабочая группа совпадает(в АД вообще проблем не должно быть). Это, кстати, важно потому, что при смене имени компьютера в рабочей группе, остальные ПК станут игнорить. Придётся переименовывать туда сюда рабочую группу.
    2. services.msc , проверить работоспособность служб:
    · DNS Client
    · Function Discovery Provider Host
    · Function Discovery Resource Publication
    · Peer Networking Grouping
    · HomeGroup Provider
    · HomeGroup Listener
    · SSDP Discovery
    · UPnP Device Host
    3. Включен ли NetBIOS over TCP/IP
    4.Попробовать включить SMB 1.0/CIFS в компонентах windows.
    Если есть доступ к серверу на котором получалось и всё вышесказанное не помогло, разнюхать wireshark`ом в чём беда. (ну или ссылку на лог скинуть).
    Посмотрите вывод nbtstat -n, там же можете сбросить если что кэш.
    Вообще, netbios имена цепляются ещё и по arp, поэтому можно попробовать посканить подсеть NetBScanner (лучше качать с nirsoft.нет)
    Ответ написан
    Комментировать
  • Какую литературу выбрать для изучения фронтенда с уклоном в реакт?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Мой никчемный, но совет..
    Базу учить по учебникам в гугле (JS для чайника -> JS для профи -> node/react/etc). Все (ну, большинство как минимум) фичи в JS вы поймете только на горьком опыте решения интересных задач, нудного гугления и постоянного стремления оптимизации кода. Лучше сразу начать разбираться с отладчиком. Также можно полапать различные либы и, если мозг не лопнет, подчерпнуть массу интересных джебов/хуков/глюков у авторов =)
    Ответ написан
    Комментировать
  • Как обратиться к данным в массиве?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Если поменять в PHP файле
    <?
    $aMenuLinks = Array(
      Array(
        "page"=>"Каталог курсов",
        "link"=>"index.php",
        "foo" => Array(),
        "bar" => Array(),
        "dollar"=> ""
      ),
    
      Array(
        "page"=>"Мои курсы",
        "link"=>"mycourses.php",
        "foo"=> Array(),
        "bar" =>Array(),
        "dollar" =>""
      ),
    );
    echo json_encode($aMenuLinks);
    ?>

    то можно так
    <div id="app2">
                <div v-for="inform in info">
                    <a v-bind:href="inform.link">{{inform.page}}</a> 
                </div>
                var app2 = new Vue ({
                    el: '#app2',
                    data() {
                        return {
                            info: null
                        };
                    },
                    mounted() {
                        axios
                            .get('test.php')
                            .then(response => (this.info = response.data));
                    }
                })
    Ответ написан
  • Генерация порядкового номера с сортировкой по дате?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Не до конца понял вашу задачу.. Но, моё мнение:
    1. Переменная seq - не нужна, пользуйтесь [].length;
    2. Лучше сделать такую структуру [ { date: Date, createDate: createdAt, id: reportId} ]
    Обрабатывать так:
    var reports = new Array();
    var Report = function(date){
    	this.date = date;
    	this.createDate = Date.now();
    	this.id = reports.filter(f=>(f.getFullYear() == date.getFullYear() && f.getMonth() === date.getMonth())).length + 1;
    }
    let lastReportNumber = reports.filter(f=>(f.getFullYear() == 2019 && f.getMonth() === months.indexOf("Январь"))).length; // последний номер заявки и соответственно их число в месяце (если первый id = 1)
    reports = reports.filter(f=>!(f.getFullYear() == 2019 && f.getMonth() === months.indexOf("Январь") && f.id === lastReportNumber)); // Удалить последнюю в январе
    reports.push(new Report(Date.now()));//Положить новую
    Ответ написан
  • Можно ли использовать конструктор маршрутов яндекс карт без использования api ключа?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Уберите ключ в https://jsfiddle.net/Vampire/d9xcjnog/2/
    5c40954289250306678556.png
    и скрипт сработает.
    У Яндекс есть общие ограничения на обращения без ключа - тут кому как повезёт.
    Ответ написан
    Комментировать
  • Работа с AJAX запросом. Вопрос по поводу ЛОГОВ. Как сделать?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    В реальном времени, в идеале и в Вашем конкретно случае, используйте websocket.
    Нельзя отдать два ответа на один Ajax запрос.
    Ответ написан
  • Чем сделать кастомную анимацию на сайте и как сверстать?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Возможно реализовать на canvas/svg
    Ответ написан
    Комментировать
  • Когда можно вешать события на элементы?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    1. Пока в document.body не будет добавлена #button1 - вешать не на что.
    2. Пока не прогрузится jquery - $ не сработает.
    Вы можете подгружать скрипт в конце разметки тела страницы, к примеру
    <script></script>
    </body>

    Процесс отрисовки тут не при чем
    Ответ написан
    Комментировать
  • Как сделать проверку нескольких input полей на наличие текста?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    В Вашем случае лучше отказаться от селекции по id в пользу class
    Если кнопка <input type="submit">то можно так.
    <form>
         <input type="text" class="checkme" value="zagol">
         <!-- Другие элементы формы -->
         <input type="submit">
    </form>
    <form>
         <input type="text" class="checkme" value="users">
         <!-- Другие элементы формы -->
         <input type="submit">
    </form>

    Можно сделать так
    function check(){
    	if ($(this).val() !== '') $(this).parent().find('input[type="submit"]').removeAttr("disabled");
    	else $(this).parent().find('input[type="submit"]').attr('disabled', true);
    }
    $(".checkme").change(check);

    Если в разметке идут парами
    <input type="text" class="checkme">
    <button>#Загол</button>
    <!-- Другие элементы -->
    <input type="text" class="checkme">
    <button>#Юзеры</button>

    то можно изменить функцию check таким образом
    function check(){
    	if ($(this).val() !== '') $(this).next('button').removeAttr("disabled");
    	else $(this).next('button').attr('disabled', true);
    }
    $(".checkme").change(check);
    Ответ написан
    Комментировать