Ответы пользователя по тегу JavaScript
  • Интернет-магазин в виде js-плагина. Как? Смысл?

    @Karpion
    Вообще-то, магазин состоит из нескольких компонентов:
    1. База данных с СУБД - для транзакций.
    2. CGI-скрипты или иная программная часть, преобразующая запросы с клиента в SQL-запросы к СУБД.
    3. Клиентская часть - HTML и JS. Отдельно - для покупателей, для сотрудников, для администраторов: каждому своя система. Впрочем, и CGI-скрипты у них тоже, скорее всего, разные.
    "Интернет-магазин в виде js-плагина" без чего-то дополнительного - не бывает.
    Ответ написан
    Комментировать
  • Как вы считаете стоит ли оставлять вероятность получения результата -0 в программе или нет?

    @Karpion
    Насколько я понимаю, компьютеры устроены так, что
    • либо "минус ноль" приводится к "плюс ноль";
    • либо все операции (арифметика, сравнение, вывод на печать) устроены так, что разницы нет, а при печати минус при нуле не выводится.
    Так что я бы не стал заморачиваться.
    Ответ написан
    Комментировать
  • Вопрос с калькулятором?

    @Karpion
    Смотря как устроен калькулятор.

    Самый тупой способ: либо по ходу ввода, либо после ввода - заменять замятые на точки, потом вычислять.
    Ответ написан
    Комментировать
  • Проект запускается на двух портах, для чего?

    @Karpion
    Я не понял, что за "клиентская часть".

    1) Слушать два порта может и один сервер - например, Apache.

    2) Есть смысл разнести на разные порты разные функции. Например, юзеры ходят на один порт, а админ - на другой. Хакерам становится сложнее - второй порт надо найти, на этом обламываются самые тупые/неопытные "мамкины хакеры" (малолетки) - самая надоедливая часть хакеров. К тому же админский порт можно прикрыть в firewall - чтобы туда был доступ с конкретного списка IP-адресов. А можно прикрыть технологией port-knocking.
    Это если я правильно понял вопрос.
    Ответ написан
  • Здравствуйте, как реализовать функцию поворота здания на 360 градусов с 4 стоп кадрами, на которых будет отрисованны SVG?

    @Karpion
    У меня очень плохое зрение, поэтому я не уверен, что правильно понял задачу.

    Вроде, на том сайте - плавное вращение трёхмерной фигуры. Но формат SVG - строго двумерный, он не позволяет такого. Т.е. там, скорее всего, используется VRML или типа того - из которого генерится SVG.

    Попробуйте найти координаты студии, которая это ваяла. Наверняка это профессиональная студия делала, а не кадровые работники владельца сайта.
    Ответ написан
  • Как правильно решить данную задачу?

    @Karpion
    Самый тупой способ:
    Запишем в один массив сначала английские дни недели, потом русские.
    Преобразуем переменную lang в число по правилу: en=0, ru=1.
    Сложим это число с номером дня недели.
    Дальше рассказывать?

    Второй вариант:
    Создадим два массива: ru и en .
    Создадим хаш-массив с индексами 'ru' и 'en', а значениями - ссылками на те два массива.
    Дальше рассказывать?
    Ответ написан
  • Как узнать следующие даты недели?

    @Karpion
    Если Вам надо все три следующих дня - то получайте их по очереди.

    Если Вам нужен сразу дальний день - то надо взять номер текущего дня недели; прибавить к нему сколько нужно; и потом взять остаток от деления на семь (@origami1024 как бы намекает).
    Ответ написан
    Комментировать
  • Оповещение о минимальном количестве символов в textarea?

    @Karpion
    Для начала надо найти обработчик события, вызываемый при каждом изменении содержимого области ввода. Т.е. берём учебник/справочник, читаем описания всех обработчиков, которые можно пришить к области ввода.
    А далее берём длину строки от содержимого области ввода и обрабатываем её как нужно. Кстати, в идеале - кнопку "отправить сообщение" надо сделать неактивной на всё время, пока содержимое поля ввода не соответствует нашим критериям.
    Ответ написан
    Комментировать
  • Как передать значение переменных из одной функции в другую в JS?

    @Karpion
    1. Вычесть из одного числа другое (т.е. - из результат первого игрока вычесть результат второго игрока).
    2. Если получилось меньше нуля - то прибавить три. Далее:
      • 0 = ничья
      • 1 = выиграл первый
      • 2 = выиграл второй


    Ответ написан
    Комментировать
  • Почему return срабатывает раньше чем остальной код?

    @Karpion
    К слову "быстрее" должны прилагаться запятая, слово "чем" и дальше сущность, которая срабатывает медленнее. Без этого вопрос вообще непонятен.
    Ответ написан
    Комментировать
  • Почему в функциональном программировании нельзя применять циклы?

    @Karpion
    Функциональное программирование предполагает: любой переменной значение присваивается ровно один раз и не м.б. изменено. Это условие означает невозможность завершения цикла, причём любого: for, while, repeat-until.

    Т.е. проблема не в начальном присваивании значения, а в последующих изменениях типа i++
    Ответ написан
  • Почему не выполняется условие в цикле?

    @Karpion
    Вообще, работать через алерты и промпты - так себе идея. Лучше делать это через формы ввода с полями.

    На первый взгляд по логике - вместо && надо ставить || - попробуйте.
    Ответ написан
    Комментировать
  • Вопрос о правах доступа, или как защищаются google табличные скрипты?

    @Karpion
    Кажется, я понял Ваш вопрос.

    Вы упустили, что гугловские таблицы обрабатываются скриптами как на клиенте (в браузере), так и на сервере.
    Допустим, есть таблица из трёх ячеек:
    1. доступна мне полностью;
    2. доступна мне только на чтение;
    3. вообще мне недоступна.
    И вот я весь из себя такой типа супер-пупер-мега-хакер - решил подменить скрипты, которые мне прислал Гугл, на свои собственные, которые мне ничего не запрещают, а чисто конкретно делают то, что я в них написал.
    Для начала - я просто не получу третью ячейку: мне там выдадут пустоту или сообщение "не для тебя этот цветок вырастили".
    Вторую ячейку я получу и даже смогу её изменить. Но вот при попытке записи её на сервер - мне просто откажут в выполнении моего запроса, вернут сообщение "не буду менять". При этом у меня на экране в этой ячейке м.б. что угодно - а все остальные, кто будут пользоваться этой табличкой (и будут иметь право читать вторую ячейку) - увидят там старое значение, а не то, которое я туда пытался вписать.

    Возможно, Вам проще будет понять ситуацию, если представить, будто каждая ячейка лежит в отдельном файле на файловом сервере. Ну и что толку, что редактор файлов исполняется у меня на компьютере, и я могу его модифицировать?
    Ответ написан
    4 комментария
  • Изучение JavaScript, как поступить?

    @Karpion
    Приличные программы устроены так, что интерфейсы (к пользователю, к сети, к системе хранения данных) отделены от алгоритмов обработки данных. Это чтобы программу было легче портировать туда, где интерфейсы иные.

    Мелкие программы - пишет один человек; там разделение интерфейсов-и-алгоритмов часто нарушают.
    Крупные программы - пишут много людей; и разделение интерфейсов-и-алгоритмов нужно в т.ч. для разделения труда. И вот тут м.б. востребованы программисты, которые хорошо знают алгоритмы, но плохо владеют вёрсткой.

    Я достаточно внятно выразил свои мысли?
    Ответ написан
    1 комментарий
  • Как разделить на части необычную переменную?

    @Karpion
    Если это строка - то можно регексом или более простыми средствами работы со строками.
    Если это массив - то по индексу массива.
    Но по виду - больше всего похоже на вызов функции.
    Ответ написан
    Комментировать
  • Как после отправки данных запретить возвращение на старую?

    @Karpion
    А зачем? От причины запрета - и танцуем.
    Ответ написан
    Комментировать
  • Изменение имени пользователя после отправки данных через форму?

    @Karpion
    При логине (по нажатию кнопки "Войти") логин и пароль отправляются серверу (CGI-скрипту).
    Сервер сверяет логин и пароль. Если совпало - то присылает браузеру куку, содержащую логин и некий ключ (рандомное число), который должны хранить и браузер, и сервер (для увеличения безопасности - сервер может увязать это с IP-адресом клиента; но если клиент может произвольно менять свой IP-адрес, то это будет глючить; IP-адрес - это адрес, с которого идёт обращение к серверу, т.е. обычно это адрес провайдерского NAT).
    Далее элементарно: при наличии этой куки клиентская страница (браузер, исполняющий скрипт на этой странице) берёт из куки логин.

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

    Надеюсь, понятно.
    Ответ написан
    Комментировать
  • Как нарисовать svg на js?

    @Karpion
    Можно использовать что-то типа document.write - он пишет прямо внутрь документа.

    Можно поставить вместо констант - JS-переменные.

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

    @Karpion
    Надо отслеживать движения мыши - и на место курсора помещать блок кода DIV, содержащий картинку. Примерно как при перетаскивании картинки мышкой - только без нажатия на кнопку.
    Ну, если я правильно понял задачу.
    Ответ написан
    Комментировать
  • Как использовать слеши в регулярном выражении в Gulp?

    @Karpion
    А что вообще должен обозначать плюс в данном случае? Может, выкинуть его вообще?
    Ответ написан