Ответы пользователя по тегу JavaScript
  • Почему сервер отдает данные, которые js-скрипт не рассчитывает получить?

    @Karpion
    Нормально написанный скрипт - игнорирует лишние данные.

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

    @Karpion
    Для начала надо внятно сформулировать ТЗ. Что значит "11"? Может, это всё после вопр.знака? Тогда так: "Заменить {начало строки, что угодно, вопро.знак} на {пустую строку}. Раскрываем это выражение: s/^.*?//
    Ответ написан
    Комментировать
  • Вероятность выпадания числа?

    @Karpion
    Я не понял вопроса. Вы говорите, что юзер должен выбрать число - допустим, назовём его Икс. Есть какой-то интервал: [1..100]; видимо, Икс д.б. в этом интервале. Далее, я так понял, надо сгенерировать число Игрек; видимо, в том же интервале; но непонятно, с какой вероятностью/плотностью Игрек должен распределяться по интервалу, да ещё в зависимости от Икс.

    Напишите, зачем Вам это надо. Похоже, Вы сами не очень понимаете, что надо делать.
    Ответ написан
    Комментировать
  • Можно ли запретить браузеру кэшировать javascript код?

    @Karpion
    По идее - клиент (браузер) должен запрашивать сервер на тему "вот у меня есть файл, который ты мне выдал; последний раз он изменялся тогда-то; а сейчас там что?". Если на сервере файл более новый - то сервер передаёт файл; а если не так - то говорит "используй то, что в кэше".

    Возможно, указывается не последнее изменение файла, а время последнего скачивания.

    Короче говоря, проверяйте настройки времени.
    Ответ написан
    Комментировать
  • Как взять третье слово из строки?

    @Karpion
    split использует проверку на простое совпадение.
    match использует попадание под regex-шаблон.
    Очевидно, что split существенно быстрее. Правда, одиночное применение и того, и другого - настолько быстрое, что разница не заметна. Но разница м.б. существенна, если это надо делать сто миллионов раз.

    А вообще, можно же проверить скорость экспериментом.
    Ответ написан
    Комментировать
  • Сложение и вычитание времени?

    @Karpion
    Я не понял задачи. Это реальное время событий или что-то иное?
    Приведите пример использования - особенно случая отрицательного времени, что должно получаться.

    Допустим, Вам надо выставлять время на часах. Оно отрицательным не бывает.
    Тогда мы вычисляем время в минутах (или секундах, или вообще тысячных долях секунды) и приводим его к "модулю по суткам". Если мы работаем в минутах, то в сутках 60*24 минуты - так что берём результат и применяем к нему операцию "mod(60*24)", после чего получаем число в интервале от 0 до 60*24-1; и из него делаем часы:минуты.

    Если же Вам надо получить результат в виде "столько-то времени назад/вперёд", то мы опять вычисляем время в минутах (или точнее). Затем берём abs от этого времени и переводим его в часы:минуты (часов м.б. много - больше, чем 24). Ну и дописываем знак.
    Ответ написан
    1 комментарий
  • Как применять физику к сложной форме (2d model)?

    @Karpion
    Вам надо уяснить, что значит "листья движутся". Вряд ли Вы собираетесь сделать реальную модель, т.б. что там нужно 3d. Значит, нужна имитация. А это зависит от того, каких целей Вы хотите добиться.
    Также надо уяснить, что такое "разные силы".

    Например, можно сделать жёсткий ствол, упругие ветки, а на ветках - "облака листьев", которые могут проникать друг-в-друга.

    "Физически достоверные объекты в 2d мире" - это оксюморон.
    Ответ написан
  • Как организовать автозаполнение слов?

    @Karpion
    Мне что придётся при вводе каждого символа отправлять туда же запрос на получение новых данных по книгам?
    Нет, можно посылать запросы реже.

    Допустим, мы только что загрузили страницу; в поле ввода пока пусто. Мы заранее (при заполнении БД) составляем дерево запросов (оно по размеру сопоставимо с ключами поиска в БД; ну, можно обрезать). Предполагается, что юзер может ввести первую букву - одну из тех, которые являются первыми буквами ключей поиска. Значит, можно сразу же заранее загрузить варианты подсказок для первой буквы, и далее просто выбрать нужный уже загруженный вариант.

    Можно загрузить варианты подсказок для любых первых двух букв. Или трёх. Или сколько угодно. Просто количество вариантов растёт экспоненциально.
    Это называется "упреждающее чтение".

    Есть вариант - загружать только самые популярные варианты подсказок. А для этого придётся вести статистику.

    Короче говоря, ценой уменьшения количества запросов и роста атликабельности - будет рост трафика и усложнение как калинтской, так и серверной части сайта. Решайте сами, нужно но Вам или нет.

    По хорошему - смотрите, как это сделано у грандов индустрии - у поисковиков, у крупных магазинов, etc.
    Ответ написан
    Комментировать
  • Почему в браузере Firefox некорректно отображается данная анимация?

    @Karpion
    У меня FF'52.9 (из-а W'XP) - нормально выехало. Правда, но мой взгляд - слишком быстро. Попробуйте снизить скорость в десять или даже в сто раз - может, станет понятно, в чём дело.
    Ответ написан
    Комментировать
  • Как сделать, чтобы при включении 3-х элементов включался четвертый?

    @Karpion
    Повесить на все три элемента один обработчик. При вызове обработчика - считать количество включённых элементов. Если оно самое - то включать картинку.
    Ответ написан
  • Как реализовать бесконечный(почти) календарь?

    @Karpion
    Ну, я бы сделал как-то иначе, примерно так:
    Есть окно примерно на один месяц, т.е. на шесть недель (т.к. месяц на 31 день занимает четыре недели три дня, причём эти три дня м.б. в разных неделях). В нём показывают ровно то, что влезает. Склоллинг колёсиком мышки приводит к перемещению на одну неделю за клик колёсика. При этом никакого скролл-бара справа нет, там строго шесть недель.

    А сбоку - возможность кликом выбрать месяц и год. Не выпадающий список, а всегда развёрнутый; месяцы должны влезть на экран, а годы - со скроллом. Впрочем, нужен ли скролл - должно определяться по факту того, влез ли список в экран.
    Ответ написан
    Комментировать
  • Можно ли повесить событие на комментарии html?

    @Karpion
    Для начала хорошо бы выяснить, кто и зачем выделил слова "ЯБЛОКО" и "ГРУША" таким нестандартным образом. Может, подкрутить что-то там, где делают эту, мягко говоря, нестандартной ориентации HTML-страницу?
    Ответ написан
    Комментировать
  • Как делать спавн существ в javascript?

    @Karpion
    Чтобы моб появился - надо создать соответствующий объект.
    Чтобы моб был невидимый - у него д.б. атрибут, определяющий видимость; точнее, у всех мобов д.б. такой атрибут типа boolean. А граф.движок должен просто не отрисовывать тех мобов, у которых видимость отключена.
    Ответ написан
    Комментировать
  • Код для движения к цели?

    @Karpion
    Пусть существо имеет координаты Sx и Sy, а еда - Ex и Ey.

    Цикл:
    • вычисляем вектор на еду: Rx=Ex-Sx , Ry=Ey-Sy ;
    • вычисляем длину вектора L=sqrt(Rx**2+Ry**2) ;
    • если длина вектора = 0, то
      • мы приехали, начинаем кушать (выход из цикла);

    • иначе если длина вектора больше шага T, то
      • нормируем вектор на еду: Rx=Rx/L*T , Ry=Ry/L*T .

    • делаем шаг: Sx+=Rx , Sy+=Re ;
    • переходим к следующей итерации цикла ;


    Для неподвижной еды и/или постоянного шага T вычисления можно оптимизировать (например, сразу вычислить нужное количество шагов и организовать счётчик по циклу; и/или один раз вычислить нормированный вектор). Однако, надо быть осторожным с округлением координат особенно если координаты целочисленные, а шаг T маленький - тогда существо может очень сильно мотать в стороны.
    Ответ написан
    Комментировать
  • Как взять из массива предыдущее или следующее значение?

    @Karpion
    А кто гарантирует, что значение 'test2' встречается только один раз?

    Так-то - найти номер элемента, который равен 'test2' (перебором; половинным делением, если массив отсортирован; встроенной в язык функцией); и затем отнять/прибавить к этому номеру единицу (при необходимости - извлечь элемент массива).
    Ответ написан
    Комментировать
  • Как вычислить пересечение временных интервалов?

    @Karpion
    Пусть есть два объекта:
    1. start1:finish1
    2. start2:finish2
    Оба времени переводим в линейный формат типа Unix-времени от начала эпохи; или не надо, если в языке есть функция сравнения времени (в ряде случаев можно сравнивать строки - для этого нужно, чтобы незначащие нули не пропускались). Далее просто:
    if start1 <= finish2 and start2 <= finish1 then пересечение_есть else пересечения_нет
    Возможно, знак равенства надо убрать - в зависимости, засчитывается ли пересечение интервалов в одной точке.
    Ответ написан
    Комментировать
  • Как установить 1 уникальную куку пользователю для нескольких сайтов?

    @Karpion
    Вроде, кука имеет список сайтов, которые могут её читать.
    Ответ написан
    Комментировать
  • Как получить часть url по условию?

    @Karpion
    Ну, я бы попробовал url.split('/') - прорезать строку по слешам.
    Ответ написан
    Комментировать
  • Как можно хранить отсчет времени на клиенте?

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

    Отдельный вопрос - когда меняется дата. Есть варианты:
    1. в полночь;
    2. в момент, когда Пользователь ввёл число в инпут.
    Ответ написан
    Комментировать
  • Как найти координаты точки на окружности зная X?

    @Karpion
    x = x0 + r + Math.cos(fi)
    Начнём с того, что вместо "r + Math.cos(fi)" надо "r * Math.cos(fi)".

    Но, как сказал Rsa97 - тригонометрия тут не нужна.
    Ответ написан
    Комментировать