• Что делать если нет тэга "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;
    }


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

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

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

    @alexalexes
    Добавьте к картинке свойство object-position: bottom.
    Ответ написан
    Комментировать
  • Как открыть файл?

    otdameskapizm
    @otdameskapizm
    Помог ответ? Отметь решением...
    Нужно взять какую-то функцию (или ее написать), которая поможет тебе:

    1) Прочитать файл
    2) Сохранить данные из файла в переменную

    Для этого можно воспользоваться вот этой штучкой: https://nodejs.org/docs/latest-v16.x/api/fs.html
    Функции, которые отвечают за работу с файлами, находятся в модуле File System
    Ответ написан
    2 комментария
  • Как вместить страницу в один экран?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Ответ написан
    Комментировать
  • Как авторизоваться на GitHub?

    Но когда доходит дело до пароля Я просто не могу туда ничего вводить не цифры не русские буквы не английские

    Это нормально. Ты на самом деле вводишь пароль, но чтобы со стороны нельзя было сказать даже какой длины у тебя пароль - ничего в консоль не выводится.
    Но вроде как в GH так аутентифицироваться нельзя - должно работать окошко с oauth.

    Для надёжности советую настроить SSH-ключи, чтобы не тратить время на http-аутентификацию
    Ответ написан
    Комментировать
  • Как можно улучшить модерирование?

    Adamos
    @Adamos
    Примерная хаутушка, если вдруг у кого зачешется левая пятка:
    0. Здесь ресурс айтишных вопросов. Не айтишные, а также опросы, задания, спам и флуд - удаляются.
    1. Погугли, прежде чем спрашивать. Кстати, здесь тоже есть поиск (ссылка).
    2. Обращайся с проблемой. Не с задачей, а с тем, что у тебя не получилось в ее решении. Если ты ничего не сделал для решения сам - тебя здесь затроллят и отправят на фриланс.
    3. Если задача решается кодом - приведи код. Не скриншоты, видео и ссылки, а код. В теге "code", чтобы его можно было нормально прочитать. Ошибки, логи и пр. - только текстом.
    4. Указывай только необходимые теги. За тег-спам модератор покусает.
    5. (и ссылка на полный текст правил, буде возникнет желание его прочитать).
    Ответ написан
    4 комментария
  • Почему не работает hasMany в laravel?

    iMedved2009
    @iMedved2009
    Не люблю людей
    public function show(int $id)
        {
            $post=Post::find($id);
            $comments=$post->comments()->get();
            dd($comments);
        }


    или
    public function show(int $id)
        {
            $post=Post::find($id);
            dd($post->comments);
        }
    Ответ написан
    1 комментарий
  • Как вставить текст туда куда мне нужно?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    В первой строке лишний бэк-тик в конце:
    textpayload = message.user.bonusNew ? `"{\"button\": \"дуэль\"}"` : "{\"button\": \"бонус_новичка\"}`"

    См. последние 2 символа: удалите `
    Бэк-тики (обратные кавычки) там вообще-то все не нужны, т.к. не используются их преимущества.

    Неблагодарное дело вручную писать JSON со всем эти кавычками – тут обычными, тут экранированные обратными слешами. Лучше сделать обычный объект, и потом его перевести в строку JSON:
    const bonusButton = { button: message.user.bonusNew ? 'дуэль' : 'бонус_новичка' };
    textpayload = JSON.stringify(bonusButton);
    Ответ написан
    Комментировать