Задать вопрос
  • По какой причине может некорректно отображаться футер и навигационное меню, а именно не доходят до правого конца страницы?

    @strelok011
    Такое бывает в ситуации, когда в контенте или в любом блоке присутствует элемент или контейнер шире, чем ширина страницы. Это могут быть как изображения, так и элементы у которых неправильно заданы параметры с шириной и паддингом.
    Т.е. если есть элемент с шириной 100% и паддингом, ему надо бы указывать box-sizing: border-box;
    Так же могут влиять неверно применяемые флоаты, флекс и прочее.
    Первый шаг для проверки - накидывать overflow: hidden на контейнеры чтоб локализовать проблему, где именно находится распирающий элемент, либо в отладчике включить инструмент выбора элемента на странице и искать в пустой казалось бы области.
    Ответ написан
    1 комментарий
  • Чат-бот без программирования?

    @MuffinLover
    Как и любой другой конструктор - он очень ограничен и подходит для небольшого количества очень простых задач.
    Поэтому все-таки, чтобы делать что-то более менее нормально - программирование нужно.
    Ответ написан
    Комментировать
  • Регулярные выражения в php и js одинаковые?

    @d-sem
    Похожие по базе, но различаются в деталях. Даже в рамках PHP в зависимости от версии разные диалекты регулярных выражений. Так, в PHP 7.3 сменили PCRE на PCRE2. Различия вкратце разобраны на SO https://stackoverflow.com/questions/70273084/regex...

    Для большинства задач эти детали легко проверить в конструкторах регулярных выражений, например https://regex101.com/
    Ответ написан
    Комментировать
  • Как правильно задать условия проверки для последнего элемента массива?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    lastEl - это индекс эемента, а не сам элемент. Сам элемент - friends[lastEl ]
    Ответ написан
    Комментировать
  • Как запустить приложение на новом компьютере, так, чтобы оно думало, что запущено на старом?

    В общем случае - никак, тк мы не знаем нюансов работы првоерки компьютера контретно у вашего софта (который даже не назван).

    В худшем случае - оно проверяет всякие аппаратные идентификаторы устройств, и чем больше разных - тем сложнее подделать их в совокупности.
    Ответ написан
    2 комментария
  • Почему этот код не работает?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    localStorage хранит только текстовые значения. Соответственно, когда вы пишете в него булево значение true/false, то после считывания получаете строку "true"/"false". Ну а непустая строка всегда эквивалентна true.
    Ответ написан
    Комментировать
  • Почему этот код не работает?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Локал стораж хранит строки. Поэтому при установке в него false, будет храниться 'false'.
    checked ожидает - boolean.
    строка 'false' - конвертируется в true, потому что любая не пустая строка конвертируется в true. Это основа языка.

    соответтсвенно:
    -themeCheckBox.checked = localStorage.getItem('themeCheckBox')
    +themeCheckBox.checked = localStorage.getItem('themeCheckBox') === 'true'
    Ответ написан
    Комментировать
  • Что делать если нет тэга "a" и ссылки в коде html сайта?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    нужные запросы можете найти в dev tools во вкладке network с фильтром xhr

    список классов
    https://брянка23-дист.школа-лнр.рф/api/guest/eclasses

    1а класс (недельное)
    https://брянка23-дист.школа-лнр.рф/api/guest/week-...

    понедельник 14 ноября
    https://брянка23-дист.школа-лнр.рф/api/guest/task?...
    Ответ написан
    Комментировать
  • Что делать если нет тэга "a" и ссылки в коде html сайта?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Добро пожаловать в современный web, где контент уже больше 15 лет формируется динамически с помощью JavaScript.
    Ответ написан
    1 комментарий
  • В чем преимущества Route Model Binding?

    @jazzus
    1) В твоем случае вообще нужно юзать ресурсные роуты, которые работают с биндингом, а это еще минус строки кода. Далее тебе нужно проверить права доступа, а значит политики авторизации, с ресурсными контроллерами, это еще минус код тк они конектятся одной строкой кода ко всем методам и модель через биндинг передается автоматом в политику. А в этом и есть смысл фрейморка - не писать код самому и не пилить кривые велосипеды.
    2) Модель тебе может понадобиться в мидлварях, форм реквестах, политиках, с биндингом тебе не нужно делать на каждом этапе свои одинаковые запросы.
    3) Что такого в load неудобного не понял? Тот же самый with.
    4) если ты проверяешь права доступа к модели, то тебе обычно не нужны ее отношения и поэтому нет смысла их грузить до проверки в политиках - это будут лишние запросы если авторизация не прошла. Для этого биндинг дает именно то, что тебе надо - чистую модель.
    5) Where в модели не нужен. То, что ты проверяешь статус в модели - это проверка доступа, которую нужно делать в политике.
    6) Удобно, красиво, быстро и необходимо для полноценного использования Ларавел, а не только роуты, контроллеры и вьюхи как в 99% проектов.
    Ответ написан
    4 комментария
  • Как отключить setInterval, если он помещён в функцию?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    // Выносим за пределы функции, чтобы иметь доступ из любой функции
    let timeForQuestion;
    
    function timer() {
        const checkTimer = document.querySelector("#checkTimer");
        function restOfTime() {
            if (Number(checkTimer.innerHTML == 0)) {
                checkTimer.parentElement.innerHTML = `<span style="color: #a8323e">Время закончилось</span>`
                clearTimeout(timeForQuestion)
                resultFalse(state);
            } else {
                checkTimer.innerHTML = checkTimer.innerHTML - 1;
            }
        }
        
        timeForQuestion = setInterval(restOfTime, 1000)
    }
    
    function resultFalse(elem) {
        clearInterval(timeForQuestion); // останавливаем интервал
        const falseAnswerCount = document.querySelector("#falseAnswerCount");
        falseAnswerCount.innerHTML = Number(falseAnswerCount.innerHTML) + 1;
        questionWindow.innerHTML = `<span style="color: #C30052">Ты совершил ошибку</span> <br> ${elem.currentAnswer.currentAnswerQuestion}`;
        createQuestionBtn.innerHTML = "Учту. Создать новый вопрос";
        fullDisableElem(answerButton);
        fullEnable(createQuestionBtn);
        changeInput("false");
    }
    Ответ написан
    2 комментария
  • Как отключить setInterval, если он помещён в функцию?

    neuotq
    @neuotq
    Прокрастинация
    Функции у вас перегруженны конечно. но вернёмся к интервалам.
    В вашей функции timer() вы можете написать в конце:
    function timer(delay = 1000) {
        //---    
        return setInterval(restOfTime, delay)
    }

    Далее, тогда при вызове timer() вы получаете идентификатор по которому таймер можно остановить в любой момент.
    const questTimer = timer();
    // ----
    clearInterval(questTimer);

    Функция resultFalse тоже так себе (в timer тоже нужно вынести лишнее), но там мы видим штуку changeInput, а значит можно повесить слушалку событий addEventListener на что-то что меняется и слушать в основной потоке/функции гдле вы создаете вопрос, таймер и тп. По срабатыванию события сбрасываете счётчик
    Ответ написан
    3 комментария
  • Что такое window.__INITIAL_STATE__?

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    При использовании предварительного рендеринга страниц, независимо на стороне сервера(SSR) или при билде приложения(SSG), разметка, прилетающая на клиент - просто разметка. Не реактивна.
    Думаю, Вы знаете, что есть такой процесс как гидратация - если коротко, то это как раз и есть процесс, когда статика обвешивается реактивностью.
    Стэйт - это просто объект в памяти.
    Откуда ему взяться в памяти, если начальное состояние приходит с сервера?
    Вот оно и приходит в переменной INITIAL_STATE.
    Происходит гидратация, initial_state становится, назовём условн, current state, то есть переходит в vm.$store и дальше работает как SPA.

    Для сео, напрямую, это никак не нужно. Нужно для вашего приложения.
    Ответ написан
    Комментировать
  • В чем преимущества TS?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Динамическая типизация экономит время на малых проектах, статическая экономит его на больших. Если вы не понимаете, зачем нужны типы, то никогда не оказывались в соответствующих условиях.
    Ответ написан
    2 комментария
  • Временная страница сайта?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    нет это делается по другому.
    через .htacces все не существующие на сайте в виде физического файла урлы перенаправляются на единую точку входа. Часто в качестве нее используют index.php.
    остальные php файлы лежат выше корня www
    При использовании фреймворков роль index.php в том, чтобы указать пути где он лежит и передать управление его ядру.

    Что именно делать с полученным запросом ответственность роутера.
    Он анализирует урл и вызывает нужный контролер с параметрами. В качестве их обычно используют сегменты урла. Роутер так же может заниматься рерайтом запроса по маскам, чтобы привести его к типовому.
    Типовая схема /контролер/метод/парамерт1/параметр2

    Контролер подтягивает модели данных. Выбирая нужные значения по указанным параметрам.
    Дальше зовется вьюшка. (шаблон)

    Ну это сильно упрощено. Там есть еге сущности Request Responce Hook и прочее и прочее
    Ответ написан
    Комментировать
  • Временная страница сайта?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    гуглить:
    Единая точка входа
    mod_rewrite
    MVC
    роутинг
    Ответ написан
    1 комментарий
  • Как сделать разряд цифр в input но без пробелов в value?

    Adamos
    @Adamos
    Разрядка прямо в поле мешает при редактировании и копипасте, например.
    Есть вариант скрытого поля, на которое принудительно наводится фокус, или вовсе перехват нажатия клавиш и эмуляция ввода - и простой текстовый блок, в котором при каждом событии изменения ввода (нажатия клавиш, щелчки мыши, копипаста) красиво вписывается то, что в нем сейчас должно быть, и курсор, тоже искусственный, зато любой формы, какой душа пожелает.
    Ответ написан
    Комментировать
  • Есть ли в php аналог data class kotlin?

    @tukreb
    Можно, в php 8.0 ввели сахар Constructor Property Promotion
    https://wiki.php.net/rfc/constructor_promotion
    https://stitcher.io/blog/constructor-promotion-in-php-8
    Ответ написан
    Комментировать
  • Допустимо ли сокращать названия переменных до 1 буквы или комбинации символа + буквы?

    Моё мнение - если тебе смысл переменной не очевиден, то нужно делать полноценное имя переменной.

    Короткое, например, имеет смысл для параметра в лямбде (array.filter(x => x % 2 === 0)) или в какой-нибудь функции наподобие
    function sum(a, b) {
     return a+b;
    }


    Если тебе к твоей однобуквенной переменной нужно ещё и комментарий писать, который её расшифрует - значит переменная точно не должна быть однобуквенной.

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

    Экономить ресурс нажатий на кнопки клавиатуры не надо, как и не надо экономить буквы на экране.
    Ответ написан
    Комментировать