• Как сделать из нескольких HTML файлов одну страницу?

    @Mazino
    Если тебе нужен именно js way, посредством vue/react, тебе нужны компоненты, гугли компоненты vue/react, но это способ работает на клиенте и требует предварительной сборки на сервере. Если именно из html на сервере, то помещаешь в документе маску по типу {{Header}} и перед тем, как отдать клиенту, читаешь контент из файла, в котором контент для хеадера и заменяешь маску. Когда поймешь как это работает, можно не изобретать велосипеды и взять готовый пакет, например handlebars либо другой шаблонизатор.
  • Как отрисовать текст в качестве разметки html?

    @Mazino
    Браузер должен понимать, что документ, который он получает - не просто текст.
    В заголовках должен быть
    Content-Type: text/html; charset=utf-8
  • Как узнать, в каком div была нажата кнопка?

    @Mazino
    dmitry-toster, это типо глобальная перегрузка для getter'а объекта.
    obj = {}
    obj.prop.data

    Раннее такой код бросал исключение:
    Uncaught TypeError: Cannot read property 'data' of undefined

    это вроде относительно новый синтаксис, из последних обновлений es
    поскольку obj.prop == undefined
    перегрузка getter'а делает if prop exitst, и в случае неудачи вернет undefined
    что-то подобное можно сделать с помощью Proxy api.
    вариант вроде
    const key = 'data'
    obj = { content: { data: 123 }}
    obj.content?.[key]

    тоже возможен, главное про точку после ? незабыть
  • Как после ошибки исполнить действие еще много раз?

    @Mazino
    ince, что у вас в request?
    обычно код лежит в response.status, который возвращается когда request promise разрешится.
    попадаете вы или нет в блок catch можно проверить через console.error(e)
  • Как ускорить while loop?

    @Mazino
    У вас в коде был не безопасный while(len--), если len == 0, то while((-1)--) {}
    в итоге бесконечный цикл.
  • Как после ошибки исполнить действие еще много раз?

    @Mazino
    То что вы получаете http ошибку не считается исключением и вы просто не попадаете в блок catch т.к получение http с кодами ошибок - нормальное поведение, вам нужно вручную проверять коды, которые вас не устраивают и бросать исключение прямо в блоке try, с другой стороны trycatch тут сам по себе и не нужен и можно обойтись while пока код ответа не ok, но так лучше не делать и добавить счетчик attempts, который ограничит подобный ddos сервера, а между попытками неплохо добавить небольшую задержку(можно с нарастанием). Можно использовать пакет axios, который насколько я помню бросает исключения для соответствующих http кодов.
  • Почему не работает двойное сравнение?

    @Mazino
    Вероятно потому, что выражение x < y возвращает boolean
    иначе говоря: 5 < 6 < 7 -> (5 < 6 -> true) < 7 -> true < 7
    тут срабатывает приведение типов: Number(true) -> 1 -> 1 < 7 -> true
  • Можно ли файл из base64 засунуть в input[type=file]?

    @Mazino
    А вам именно в input нужно засунуть?
  • PHP или Javascript?

    @Mazino
    Bavashi, ну начиная с природы php как cgi, net модуль node, сокеты, обработка файлов, да много чего.
  • PHP или Javascript?

    @Mazino
    DevMan, Есть бриджи, организовываются без проблем, есть готовые решения, все верно, однако это никак не противоречит, что на nodejs это написать проще. Не взять готовое, а написать. Я писал на обоих языках и мне проще с node.
  • PHP или Javascript?

    @Mazino
    DevMan, ну как вы реализуете на php ws сервер пушей или банальную очередь?
    Cron, redis или другие сайд тулзы. А то что php в основном работает как cgi script, а не сервер? А неблокирующее api?
    Вот напишите сервер на php без nginx/apache и nodejs и сравните.
    Вы же и сами все это знаете.
  • PHP или Javascript?

    @Mazino
    grachiks, Как я сказал, берите, что вам нравится, по значимости языки примерно равны. Nodejs по моему мнению имеет больше возможностей и он как бы сказать... более низкоуровневый. На php куча чуть ли не готовых решений, которые только настроить осталось и речь не про cms. Правда в том, что столкнетесь с обоими языками, и какой бы не выбрали уметь придется более менее в каждый. У меня было так, что я начал с php, все круто работало, но из интереса я попробовал nodejs и это было: оо, так вот как оно работает на самом деле! т.е там некоторые вещи нужно сделать самому, хотя есть и готовые решения. Возвращатся на php, уже не захотелось и потребности не было, ибо так сложилось, что на своей работе я волен выбирать. Если поднимется вопрос, о том, что мне будут платить именно за php, чтож, значит php.
    btw по поводу большей востребованности php, ответ прост: legacy, на php колоссальное кол-во legacy
  • Как обработать форму с помощью JavaScript?

    @Mazino
    Откуда уверенность, что у автора стоит JQuery?
  • Чем отличаются события click по кнопке с атрибутом submit и событие submit на самой форме (мой проблемный код внутри)?

    @Mazino
    Ответ на вопрос в самом вопросе. Событие click в данном контексте именно что вызывает у формы событие submit, его так же можно и без посредников вызвать напрямую у формы. Если вы само событие submit перехватили, то это не значит, что это только вы его слушали и что-то делаете. Есть поведение по умолчанию, которое проявляется в ответ на большинство событий. preventDefault позволяет вашему обработчику получить монопольный контроль над событием и вместе с тем обременяет всей "магической" работой, которая совершалась по умолчанию, в вашем случае сериализация формы и сборка запроса. По этой причине, если вы хотите выполнить валидацию, перед отправкой, то лучше слушать click кнопки submit с preventDefault и в случае успешного ее прохождения вызывать у формы submit самостоятельно.
    На всякий случай ответ на вопрос: click происходит не быстрее submit, а перед ним
  • Как достучаться до response в ошибке и вывести текст "User with this username already exists" в консоль?

    @Mazino
    предайте res в console.log и покажите что там
    upd: а в блоке catch вот так console.error('MyOwnCaustomError', e)
  • Как сделать регистронезависимую замену?

    @Mazino
    Forman, пример, который вы привели решается дополнительным проходом /([^\w]\w+)([A-Z])(.+)/gm
    где вы получаете второе вхождение и конвертируете его в нижний регистр примерно так $1{($2).toLowerCase()}$3 //(псевдокод).
    Что сделать? Интерактивную замену? Описываете известные случае и обрабатываете их, при встрече не известных сочетаний останавливайте цикл и передавайте пользователю ввод с отображением отладочной информации на чем застрял. Простого способа и никакой магии тут не будет, это точно. Выше вам хороший вариант предложили. Какой бы вы не выбрали, ни один не будет простым
  • Как сделать регистронезависимую замену?

    @Mazino
    Forman, Судя по вашему примеру, регистр заменяющего символа определяется первым символом вхождения, что мешает сделать замену сначала для верхнего регистра, вроде такого /([A-Z][A-z]{1,2})/gm, а следом для нижнего регистра? Вы так же можете генерировать динамическую регулярку прямо в цикле обхода. сгенерировать список кандидатов на замену с предложенным вариантом для премодерации. Можно даже сделать интерактивную замену для спорных случаев.
  • Почему не меняет стиль через класс?

    @Mazino
    https://webref.ru/course/css-basics/priority проверьте, чтобы ваш стиль не перебивался другими свойствами.
    проверьте, что вы получаете целевой элемент в селекторе.
    используйте document.querySelector(.class|#id|tag) он поддерживает css селекторы и будет меньше путаницы. Для получения массива элементов есть document.querySelectorAll(...selectors)
    попробуйте добавить стиль 'red !important'