Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как сохранить json в переменную?

    @rPman
    JSON.parse(строка с json)

    строку грузить с помощью ajax (там кстати есть опция автоматом парсить)
    Ответ написан
    Комментировать
  • Pusher JS - это билиотека или веб-сервис?

    @rPman
    Ответь пожалуйста, зачем тебе такие крутые фреймворки для чата?

    Обычный websocket, чистый, не замутненный кодомусором, на php сервер бери Ratchet но само собой можешь выбрать любой другой, на github вариантов тьма.
    Ответ написан
    1 комментарий
  • Как с массива обьектов вытянуть ключ?

    @rPman
    Так где тут поиск ключа?

    Массивы [] javascript не подходят для твоей задачи, используй объект {} или Map

    т.е. при добавлении пользователя пишешь arr[user.id]=user и проверка на наличие пользователя такая же if(arr[user.id])
    Ответ написан
  • Можно ли закодировать аудио-файл в FLAC с помощью Web Audio API?

    @rPman
    нужно проверять наличие поддержки
    MediaRecorder.isTypeSupported('audio/flac')
    если false то тогда кодировать самому, как в соседнем ответе
    Ответ написан
    Комментировать
  • Как из формы вписать в таблицу какие-либо данные и чтобы они сохранялись при обновлении страницы(без использования PHP)?

    @rPman
    Под php подразумевается сервер бакэнд, а то можно на другом языке написать, например на javascript node.

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

    Если нужно чтобы еще и сторонние машины подгружали те же данные, да еще и в режиме онлайн мониторинга изменений, то активный сервер нужен без вариантов, можно воспользоваться готовыми облачными хранилищами такими как у amazon или google cloud, но в этом случае авторизация так же быть методами облака (либо ключи доступа будут доступны клиентам)
    Ответ написан
    Комментировать
  • Как дождаться ответа от xmlhttprequest запроса при выполнении JS скрипта в Python Selenium?

    @rPman
    В общем случае, заменить XMLHttpRequest своим, который бы вызывал на каждый успешный запрос ваш колбек, примерно так
    Ответ написан
    Комментировать
  • Как экранировать символы в сообщениях WebSocket?

    @rPman
    значения параметров http get, т.е. твой username, должны быть кодированы с помощью encodeURI
    Ответ написан
    Комментировать
  • Как реализовать игру на JavaScript (Tower Bloxx)?

    @rPman
    google: javascript 2d physics
    библиотек много, выбирай
    собственно в игре ничего нет кроме этой физики и картинок
    Ответ написан
  • Как очистить localStorage после закрытия всех вкладок с сайтом?

    @rPman
    100% гарантии локальными средствами не получишь, onbeforeunload может не исполниться по разным хоть и редким причинам (например убили процесс, или проблема с интернетом, или неудачное стечение обстоятельств при пробуждении ото сна, особенно это актуально для мобильных браузеров), поэтому ключевой вопрос задачи - обнаружить закрытие вкладок, что можно сделать только на серверной стороне, удерживая websocket подключение (сервер считает сколько открыто к какому пользователю подключений и на дисконнекте последнего помечает что сессия закончилась).

    В этом случае очистку localstorage придется делать и на открытии страницы, если сервер пометил для себя что сессия была закрыта и устарела
    Ответ написан
    Комментировать
  • Как лучше хранить такие данные?

    @rPman
    Прежде чем задавать вопрос - 'как хранить', нужно ответить на - 'как будешь использовать'.

    В данном случае возможны следующие подзадачи
    - поиск номера по букве
    - поиск буквы по номеру
    - получение списка букв или списка номеров
    - получение следующей или предыдущей по номеру буквы, получение первой или последней буквы

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

    С высокой вероятностью вам хватит двух массивов:
    * ['а','б','в',...] - обычная строчка может выступать таким массивом ('абвг...')[3]
    * обратный индекс {'а':0,'б':1,'в':2,..} обычный объект или new map()
    Ответ написан
    1 комментарий
  • Синтез речи на сайт, но не Web Speech Api?

    @rPman
    Лучший открытый русскоязычный голосовой движок мне известный - rhvoice, есть во всех формах, от Windows SAPI до компилируемой библиотеки или android версии.

    Оформляешь его в виде бакэенда и шлешь строчки текста, необходимые к синтезу через него.
    Лучше варианта не найти. В теории, можно запустить библиотеку на клиентской стороне, собрав библиотеку на WebASM, но не уверен что это даст какую то пользу.
    Ответ написан
    Комментировать
  • Как отредактировать HTML блок, который содержит переменная в JS?

    @rPman
    Это называется шаблонизатор, для javascript их миллион и маленькая тележка, можете даже простым string replace подменять какие то метки в текстовом определении вашего блока на переменные значения.
    Ответ написан
    Комментировать
  • Возможно ли отменить действие стороннего скрипта при клике?

    @rPman
    Пересоздай элементы DOM, удалив старые, но уже без настроек событий
    Ответ написан
    4 комментария
  • Как перемножить элементы массива?

    @rPman
    array_params_values[0].values*array_params_values[1].values*array_params_values[2].values
    И это оправдано, потому что в массиве известно заранее сколько будет элементов. Если это станет не так (не будет элемента) - вылезет ошибка, да можно дополнительно проверить количество.

    p.s. отвратительно выбран способ хранения параметров и имена.
    Не надо хранить так, так как чтобы добраться до значения по имени нужно будет перебирать весь массив.
    Пользуйся key-value объектами в java, их можно менять на ходу, работать удобно, быстро (можно new Map() использовать оно еще быстрее)
    Ответ написан
  • Как передать значение value внутри html страницы?

    @rPman
    $('#bbb').text=$('input').value

    без установленного jquery для каждого типа элемента нужно будет своими полями/методами пользоваться, где то value, где то text, где то делать setAttribute, а может вручную генерировать DOM

    Так же для всяких полей ввода установка значений не вызывает событий onchange или других, а многие их ожидают, думая что поля задают только вручную.
    Ответ написан
    Комментировать
  • Замена long polling для отслеживания изменений в бд?

    @rPman
    Какого фига вы рекомендуете человеку удалять гланды через задницу. Какой вебсокет в mysql вы что? Какие тригеры.

    Бакэнд является единственным, кто должен менять критичнуюинформацию в базе, вот пусть он и рассылает в вебсокет нужную информацию клиентам.

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

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

    @rPman
    Чтобы найти повторяющиеся значения, необходимо собрать их список, создаете объект, в ключи которого записываете ваши [0].
    Затем своим простым циклом собираете новый массив, в который добавляете все значения, присутствующие в этом индекс-объекте.
    Ответ написан
    Комментировать
  • Как можно автоматизировать следующую систему?

    @rPman
    Код можно запускать из одного места и файлов, аргументами запуска в командной строке определять идентификатор владельца инстанса, все файлы с данными или что у вас там пусть хранятся в подкаталогах с именем равным этому идентификатору (но лучше конечно в базе данных хранить, тупо будет удобнее).

    Осторожно с обновлениями, точнее с перезапуском бота при обновлениях или обслуживании. Вам нужно либо делать бот таким чтобы можно было безопасно в любой момент его 'остановить' (нужно понимать что ни одна операция с файлами на диске не мгновенна), т.е. вводить механизмы по временной их остановке с ожиданием окончания критичных процессов на это время (и соответствующий мониторинг для вас, чтобы можно было оценить чего ждете).
    Ответ написан
    Комментировать
  • Как правильно перерисовать canvas при ресайзе окна?

    @rPman
    Ты же сам задал размер в vh/vw а они по определению процент от размера окна.
    Делай в px или хотя бы в em

    canvas такой же элемент как и другие, устанавливайте стиль background:transparent; или opacity:XXX;
    Ответ написан