Ответы пользователя по тегу JavaScript
  • Как выполнить функцию js при нажатии на кнопку/ссылку?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Мигает он у Вас по тому, что перезагружается страница, а перезагружается она так как у ссылки есть атрибут "href", при href="" - ссылка ведет на ту же страницу, на которой браузер находится сейчас.

    Анимация там пожалуй вообще не нужна, достаточно "transition", выглядеть будет примерно так:


    P.S. Идея я думаю Вам понятна, дальше её можно развить самостоятельно :)
    Ответ написан
  • WebSocket - в чем разница между байтовой передачей и текстовой?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Не совсем понятно, о чём именно Вы говорите и что за "байтовый режим"... Все мои попытки найти ответ на вопрос, о чём хотя бы примерно идёт речь увенчались на данный момент нахождением только этого материала. Подозреваю, что речь идёт о некоем "бинарном" и "текстовом" режимах (хотя, на уровне самих вебсокетов, я чего-то таких режимов не припоминаю, не смотря на то, что когда-то я занимался работой с ними на очень низком уровне). Если так (т.е. речь идёт всё же про "бинарный" и "текстовый" режимы) - судя по всему, разница есть конкретно на уровне JS'а и отличия состоят только в том, как сам JS будет воспринимать полученные им данные, что собственно следует из примера (взято по ссылке выше):

    socket.bufferType = "arraybuffer";
    socket.onmessage = (event) => {
      // event.data является строкой (если текст) или arraybuffer (если двоичные данные)
    };


    Как видите, в зависимости от контекста получаемых/передаваемых данных - они могут интерпретироваться в JS по разному, что (как я понимаю) сделано просто для удобства (работы с исходными данными) и никакой другой практической цели в себе не несёт.
    Ответ написан
  • $.each как вывести переменную из функции?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Я думаю, Вам нужно перестать переопределять переменную внутри цикла, т.к. лично у меня и "внутри" ничего не выводит. Выглядеть это будет так:

    var test = 0;
    $.each(b, function(i, item) {
      test = test+ item;
      alert(test); // Выводит
    });
    alert(test);


    Если нужно сохранить родительскую область видимости внутри функции, то так:
    var test = 0;
    $.each(b, (i, item) => {
      test = test+ item;
      alert(test); // Выводит
    });
    
    alert(test);
    Ответ написан
  • Как хранить пользовательские настройки сайта?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли способ полностью локально хранить переменные в браузере без участия сервера?
    Есть - LocalStorage
    Ответ написан
  • Как лучше, Кнопка "бургер меню" в html или генерировать через js?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    У верстальщиков есть негласное правило - то, что можно сделать CSS'ом (т.е. обойтись без JS) - стоит делать именно CSS'ом. Главное, не гиперболизировать это правило и не возводить его в степень абсолюта. Оно работает в тех случаях, когда трудозатраты на оба варианта (JS/CSS) соизмеримы и вариант с CSS'ом не влечёт за собой замусоривание кода (например, слайдеры можно делать в т.ч. и на "чистом CSS", но такой подход вряд ли можно будет считать хорошим решением в большинстве случаев).
    Ответ написан
  • Одинарные и двойные кавычки, какие лучше?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Одинарные и двойные кавычки, какие лучше?
    В ряде языков программирования - двойными кавычками обрамляется строка с переменными или управляющими символами (перевод строки, возврат каретки, и т.д.), одинарными - константные строки (при этом управляющие символы в них тоже не интерпретируются). *просто имейте в виду, что в ряде случаев (в некоторых языках) кавычки могут иметь не только разное начертание, но и по разному интерпретироваться.

    В HTML - как "де факто стандарт" изначально было принято писать все теги большими буквами и использовать двойные кавычки, потом со временем все (где-то в районе момента появления HTML4-4.01) как-то "переехали" на нижний регистр тегов, но двойные кавычки - так и остались.

    В CSS - обычно применяют одинарные. Но, в CSS кавычки не так уж и часто можно встретить и в целом это язык довольно линейный, по этому там этот вопрос на мой взгляд не особо принципиален. *Не редко встречал например такой вариант, когда названия шрифтов обрамлены двойными кавычками, а URL'ы - одинарными (хотя по стандарту - обрамление URL'ов кавычками не является обязательным) - лично у меня даже такие варианты никакого дискомфорта не вызывают.

    В JS - скорее дело привычки... Никакой разницы на уровне кода в них нет (по крайней мере я не могу вспомнить разницы в их интерпретации). Но, судя по всему, в последнее время большинство всё же склоняется в сторону одинарных кавычек.
    Ответ написан
  • Как ограничить изменения окно браузера?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Вот тут что-то похожее по описанию на то, о чём Вы говорите, но чисто гипотетически таких функций в браузере быть не должно из соображений безопасности. Иначе, возможны были бы например такие ситуации: пользователь заходит на какой-то сайт, сайт разворачивает браузер размера вдвое больше экрана (путём установки минимально возможных размеров вдвое больше разрешения монитора) и... например, начинает показывать рекламу. В общем, это была бы дыра в безопасности для браузера, довольно большая.
    Ответ написан
  • Почему Ajax не отправляет файлы?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Почему Ajax не отправляет файлы?
    По тому, что файлы в форме не сериализуются. Для отправки файлов можно использовать FormData, можно поискать тут, уже готовые решения, так же можно воспользоваться поиском и найти ответ по первой попавшейся ссылке.
    Ответ написан
  • Есть ли какая-нибудь разница между document.ready и атрибутом defer?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли какая-нибудь разница между document.ready и атрибутом defer?
    Есть. Document.ready - это событие, а defer - это атрибут асинхронной загрузки скриптов с сохранением порядка их выполнения.

    Является ли что-то из этого более предпочтительным?
    Я думаю одно другое не может заменить в полной мере и ещё, как мне кажется, если Вы оставите document.ready там же где он и был, не зависимо от того, будет ли использоваться defer или нет, для совместимости и переносимости кода в будущем - это будет оптимальным решением.
    Ответ написан
  • Что почитать о создании многопользовательского приложения для редактирования данных?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Что можно почитать по этому поводу, в каком направлении хотя бы гуглить?
    Основных вариантов, на вскидку, могу предложить следующие:
    1. При редактировании записи (строки или любой другой сущности, по вашему усмотрению) на неё устанавливается метка, примерно такая: "редактируется пользователем таким-то", соответствующая метка удаляется по завершению редактирования. Таким образом это работает в некоторых CMS.
    2. Можно придумать какую-то систему на основе WebSocket-протокола, я думаю сервисы на подобии GoogleDocs или Trello (позволяющие редактировать один документ сразу нескольким пользователям) работают именно на его основе, это как минимум позволит видеть обновления данных всем пользователям практически в реальном времени
    3. Можно хранить все версии данных, а потом что-то делать с ними... Что именно делать - пока сказать затрудняюсь, т.к. не до конца понимаю, какие у Вас конечные требования, возможно этот вариант не подойдёт.
    Ответ написан
  • Сложно ли учить новый язык программирования после JavaScript?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Сложно ли учить новый язык программирования после JavaScript?
    Что Вы подразумеваете под словом "учить новый язык"? Учить синтаксис нового языка? Нет, не сложно, но не особо понятно, зачем оно в целом Вам надо? Знание синтаксиса языка без более глубокого понимания происходящего на более низком уровне - всё равно, что знание алфавита без понимания того, что означаю слова (составленные из букв этого алфавита).

    И даже если Вы изучили язык N ну очень хорошо (я про синтаксис), это будет порядка 5% от того, что Вам нужно будет изучить в целом, что бы стать высококлассным спецом в мире современной разработки.

    Отвечая на Ваш вопрос буквально - "учить новый язык" не сложно, ни до, ни после...
    Ответ написан
  • Как динамически подгружать список городов при выборе страны select`ом?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    где можно взять массив городов
    Изначально, я думаю, в интернете, например тут. После чего, Вы можете их сохранить либо в один большой-большой JSON, либо так и оставить в базе данных и получать их оттуда.

    Далее, алгоритм выглядит примерно так:
    1. Пользователь выбирает страну, на сервер отправляется ID выбранной в селекте страны (GET или POST запросом)
    2. В ответ от сервера приходит список регионов/городов выбранной страны, предположительно в формате JSON
    3. Полученный список разбирается на ID=Значение, которыми заполняется второй селект

    Можно так же заранее заполнить второй селект всеми возможными городами и потом скрывать лишние, но я бы так делать не стал, так как данных будет очень много и грузиться эта страница будет так же, не очень быстро...
    Ответ написан
  • Как правильно перенести скрипт из файла .html в .js файл?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как правильно перенести скрипт из файла .html в .js файл?

    1. Вырезаете всё, что находится между тегами <script></script>
    2. Вставляете это в файл с раширением .js
    3. Подключаете этот файл в нужном месте на нужной странице, примерно таким образом:
    <script src="/путь/до/созданного/файла.js"></script>
    Ответ написан
  • Как стилизировать Рекапчу?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    В дополнение к предыдущему ответу, мне кажется тут Вы найдете ответы на большинство Ваших вопросов касательно стилизации реКаптчи.
    Ответ написан
  • Знание kotlin может заменить знание javascript?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Kotlin транслируется в javascript код, следовательно вопрос знание только kotlin заменит javascript???
    Над JS есть много надстроек, не только Kotlin... всё зависит от того, насколько качественный результат Вам нужен на выходе. Если результат уровня "что б работало" - то знать можно что угодно, если же нужен качественный результат - лучше изучать первоисточник всё же... к тому же, он довольно примитивный и учить его относительно легко.
    Ответ написан
  • Как сделать все в одном окне?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Такой момент, что один вопрос появлялся на экране и после ответа, появлялся второй вопрос на весь экран. В принципе как в любом тестирование. Как стоит здесь делать?
    Записать все 12 вопросов в одну форму, в 12 разных блоков. Показывать следующий блок после ответа на вопрос. Форма - одна. Др-ть сервер AJAX'ом каждый раз - идея плохая, так как:
    1. Загрузится всё то же самое, что и за одну загрузку, но одним запросом - это будет быстрее и промежуточных данных меньше
    2. Пользователю не придётся постоянно ждать подгрузки данных между ответами

    И как еще при этом таймер привязать к закрытие теста?
    Таймер - не надо привязывать. Берёте любой таймер на JS, коих валом или пишите простейший свой таймер (в зависимости от ваших потребностей). А на сервере соотв. проверяете время начала теста и время его окончания, если пользователь уложился в отведенный интервал - всё ок, если же нет...
    Ответ написан
  • Есть что нибдуь кроме ajax?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли еще какая нибудь технология для асинхронных запросов к бэкэнду кроме ajax? В качестве бэкэнда golang
    На чем бекенд - разницы особо нет (обычно).

    Есть ВебСокеты, вполне себе асинхронно (при должном подходе), глобальная разница между ним и AJAX'ом в том, что соединение поддерживается на постоянной основе.

    Ещё есть socket.io, тоже что-то наподобии сокетов, но не подскажу точно, как именно оно работает, очень давно использовал и подзабыл...
    Ответ написан
  • Правильно ли я отпарсил путь через регулярное выражение?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Правильно ли я отпарсил путь через регулярное выражение?
    Для отладки рег. выражений - настоятельно рекомендую использовать сервис RegEx101 (переключалка языков - слева).

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

    Иными словами, если Ваш вариант правильно работает во всех случаях, в которых он должен работать правильно - ответ - да.
    Ответ написан
  • С чего подступиться к бекенду?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    знаю только, о существовании node.js - фреймворка
    Не могу быть уверенным до конца, но по моему, NodeJS - это не фреймворк.

    Хочу развить в себе это понимание, но просто не знаю как к этому подступиться. Про что читать?
    Смотря на сколько хорошо это понимание Вы хотите у себя развить. Если "очень хорошо" - то начинать нужно, я думаю, с основ сетей (из чего состоит TCP-пакет, какие бывают протоколы, OSI и так далее).

    Если говорить про уровень "чуть попроще", я бы посоветовал начать с "начала", т.е. с того, с чего начинается работа веб-приложения, а именно с HTTP-протокола, от него можно плавно переходить к веб-серверам, от веб-серверов к тому, к чему эти самые веб-сервера передают "динамические" HTTP-запросы на обработку, т.е. к "бекенд-программам" и... дальше уже сориентируетесь, чего ещё не хватает.

    Хотя, всё зависит от целей конечно, если Ваша первичная и основная цель научиться "клепать сайты" - для скорости подобного обучения - лучше максимально абстрагироваться от всех технический особенностей, например - не забивать себе голову "ерундой" о техническом устройстве, предположим, cookies'ов, а просто выяснить в общих чертах как они работают (зачем нужны) и как их можно использовать. Такой подход позволяет максимально быстро приступить к процессу "сайтоклепания", сэкономить массу времени и памяти (нейронных связей в голове) для других важных дел, например, просмотра зомбоящика :)))

    P.S. Максимальную скорость возведения бекенда обычно обеспечивают готовые решения, например, CMS. В большинстве случаев они существуют для самых разных языков, в т.ч. должны быть и для JS'а. Прелесть подобного подхода в том, что имея минимальный набор знаний о бекенде, можно делать довольно красивые/функциональные решения (сайты), при умении, хотя бы неплохо верстать :)
    Ответ написан
  • Как с помощью Jquery нажать элемент при нажатии элемента?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Попробовал вот это:
    .click в JQuery - это обработчик одноименного события, а не его генерация, если Вам нужно сэмулировать клик по элементу, выглядит это примерно так: $('#element').trigger('click'); А вообще, правильно это релизуется - отслеживанием "хеша" (т.е. того, что после '#' в адресной строке) и соотв. реакцией на его изменение. В принципе примерно это же Вам сказал предыдущий оратор :)

    P.S. Подробности про эмуляцию клика.
    Ответ написан