• Какие типичные задания на алгоритмы можно встретить в JS?

    @alexalexes
    1) Попробуйте создать DOM-узел.
    2) Напичкать его потомками с различной вложенностью.
    3) Попробуйте еще засунуть текстовые ноды.
    4) Найти потомка в DOM-узле и добавить обработчик события.
    5) Из обработчика события обратиться к родителю или потомка DOM и что-то с ним сделать.
    6) Пересортировать детей в DOM-узле.
    7) Переместить DOM-узел, не растеряв его обработчики, перед определенным узлом или после.
    8) Добавить на одно событие больше одного обработчика событий.
    9) Удалить конкретный обработчик событий, не убив все обработчики одного и того же события.
    10) Определите, что функция не работает в данном интерпретаторе JS (то бишь браузере) и попробуйте переключиться на полифил, не потеряв ее функционала.
    Типичный список задач, чем может заниматься JS на странице, что может выносить мозг тому, кто входит в эту технологию.
    PS: Это еще не полный список. Когда пойдете изучать взаимодействия с сервером, будете развлекаться с функциями ответами (коллбэки) и всякими новомодными промисами, чтобы сделать очередь обработки событий.
  • Как заменить localhost:8000 на мой домен?

    @alexalexes
    this.source = await axios.get('/about')
        document.baseURI = 'https://domain'

    Может просто синтаксические ошибки, потому что точки с запятой не поставили в конце строк?
  • Как заменить localhost:8000 на мой домен?

    @alexalexes
    Если вы беспокоитесь, что поломаются относительные ссылки на ресурсы html страницы, то в заголовке страницы нужно прописать тэг base, см. документацию.
    Если у вас ссылки и так начинались с корня сайта /. То смысла прописывать нет.
  • Как сохранить состояние первой загрузки сайт?

    @alexalexes
    Как обращаетесь к кукам?
    Используете ли специальный пакет в дополнение к vue?
  • Как сохранить состояние первой загрузки сайт?

    @alexalexes
    Используйте переменную cookie для сохранения и восстановления выбранного языка.
  • Почему sql запрос в php работает неверно?

    @alexalexes
    Тут есть маленький недочет, с обработкой ошибок при использовании запроса проверки дубликатов.
    Если как-то накосячить в запросе проверки, или СУБД перестанет возвращать ожидаемый результат, то проверка будет проигнорирована, и выполнится желаемое для пользователя действие без фактической проверки.
    Нужно, чтобы отрицательный исход проверок (нет дубликата), был точно интерпретирован как отрицательный исход при действительно корректно выполненном запросе.
    Где-то так:
    if($stmt->execute())
    {
      if ($stmt->fetch()) 
      {
        // есть, дубликат
      }
      else
      {
        // нет дубликата, можно регистрировать заявку
      }
    }
    else
    {
      echo 'Ошибка в запросе проверки дубликатов учеток!'
    }

    Чтобы повысить читаемость кода, лучше проверять не попытку фетчить, а сколько строк получает этот запрос.
    $stmt->store_result();
    if($stmt->num_rows == 0)
    {
    }

    Есть вариант, когда при успешном запросе можно быть уверенным, что в результате будет колонка с единственной строкой, причем с числом.
    $stmt = $connection->prepare("SELECT count(*) as cnt FROM users WHERE email = ? OR phone = ? limit 1");
    ....
    $row = $stmt->get_result()->fetch_assoc();
    if(isset($row['cnt'])) // если ли колонка
    {
    if($row['cnt'] == 0) // там точно что-то числовое, не null, не пустой массив, а именно число
    {
    }
    }
  • Почему includes у массива сначала возвращает true, потом false?

    @alexalexes
    Функция includes чувствительна на сравнение данных не только по значению, но и по типу.
    Ответьте для себя на такие вопросы:
    let bookmarksArray = localStorage.getItem("currentBookBookmarks").split(",");

    Вы уверены, что в bookmarksArray получаются именно элементы как числа, а не строки с цифрами?
    let currentPage = localStorage.getItem("currentPage");

    А из локального хранилища какого типа данные выходят?
    Функция typeof () вам в помощь.
  • Почему перестал работать file_get_contents?

    @alexalexes
    Все равно, проработайте вариант с ОС по другому совету. Этот, все таки, вариант аварийного решения, чтобы заработало здесь и сейчас.
  • Как в javascript игнорировать   и(или) считать его простым пробелом?

    @alexalexes
    скобки, а js их на свой счёт принимает.
    та же чушь если * в тексте.

    text1 = /тут длинная строка. слова разделены пробелами/g,
        text2 = /тут другая строка. слова разделены пробелами/g,

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

    Обычный пробел и неразрывный пробел - это разные символы. Можно их заменить с помощью тех же регулярок, но нужен определенный навык их использования.
  • Почему не срабатывает отключение кнопки в disabled при не нажатом cheked?

    @alexalexes
    privacy-policy

    shipping-payment

    Консоль не смотрели? Не кроет матом на знак минус в названии переменных?
  • Как сделать такой scroll top как на примере?

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

    @alexalexes
    Если фон вокруг фотографии однотоновый, то можно поверх img добавить div с верхним и нижним фоном в виде png с прозрачными пикселями на месте рваного профиля. Ну, и повторить фон через repeat-x. Если нужен оригинальный профиль, можно сдвигать x с помощью JS на произвольное значение.
  • MySQL - выборка диалогов с тремя последними сообщениями?

    @alexalexes
    ThunderCat, а как еще сообщения по разным чатам раскидать?
    Сущность диалог (он же чат в широком смысле слова) есть, ее нужно выделить.
  • MySQL - выборка диалогов с тремя последними сообщениями?

    @alexalexes
    Ты же понимаешь, что CTE может вернуть десяток записей с dm_rank = 1? тут нужно применять ROW_NUMBER() и расширять сортировку до обеспечения уникальности записи.

    Да, нужно заглянуть в документацию, чем отличаются оконки-счетчики. Я, обычно, по ситуации вставляю rank/row_number/dense_rank. На эксперименте сразу видно, что больше подходит. Переписал сравнения и сортировки по датам на работу с id сообщения. Идентификатор быстрее обработать, чем дату, к тому же к ключам может быть индекс, просто по тому, что ключу необходим индекс.
    Это даже если не нудеть о том, что вот никакое ограничение в структуре не мешает d.date_latest_message не соответствовать максимальному DM.added_date.

    Ну, пускай будет максимум по дате-время сообщения диалога.
    Да ладно! легко эмулируется на коррелированном группирующем подзапросе.

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

    @alexalexes
    Роман Юрьевич Ипатьев, если работать на горячую, чтобы не вызывать длительных зависаний системы, из-за того, что update будет блокировать всю таблицу во время длительного выполнения запроса.
    Не всегда это применимо (оставлять доступным сайт с недообновленной операцией), но в некоторых случаях можно использовать.
  • Как массово изменить расширение изображений на свой фомат в MYSQL базе?

    @alexalexes
    Ок. Главное, запомните правило "Семь раз отмерь, один раз отрежь". То есть "Семь раз селекть, один раз апдейть (делеть)".
    То есть на update и delete, если делается ручками и что-то масштабное, нужно всегда составлять выборку, чтобы понять, чтоб будет делать данная операция.
  • Как в PostgreSQL просуммировать Киловаты, группируя их по временным интервалам?

    @alexalexes
    Экспериментируйте. Добавил второй вариант запроса.
    Я там знаки интервалов напутал, сейчас исправлено.
  • Как в PostgreSQL просуммировать Киловаты, группируя их по временным интервалам?

    @alexalexes
    Теперь понятно, что значит periods.id - это не идентификатор временного отрезка, а это идентификатор прибора учета?
  • Как в PostgreSQL просуммировать Киловаты, группируя их по временным интервалам?

    @alexalexes
    Пример данных приведите. Непонятно, как у вас будут записываться значения потребленной энергии - либо дифферентными значениями (разница показаний счетчика между двумя соседними замерами), либо накопительные (то, что показывает счетчик в момент замера).
    Второй вопрос. Запрос должен учитывать переполнение счетчика? Какое макс. значение?
    Вопрос третий. Чтобы это не выглядело как задание, какой запрос составили вы, чтобы он хотя бы запускался и что-то выводил?