Ответы пользователя по тегу JavaScript
  • Вопросы по оформлению drag'n'drop ??

    riky
    @riky
    Laravel
    через эту библиотеку можно сделать разные перетаскивания, не только сортировку. можно перетаскивать меджу разными группами. я даже древовидную структуру на ней делал
    https://github.com/SortableJS/Sortable
    Ответ написан
    Комментировать
  • Есть ли какое-то преимущество в скорости работы такого подхода?

    riky
    @riky
    Laravel
    зависит от задачи, если обьектов всегда до 100-1000 и поиск не часто - то и разницы не заметишь.

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

    riky
    @riky
    Laravel
    это же библиотека на основе канваса. скорее всего никак. даже если там есть загрузка svg - то библиотека просто вставляет её на img а потом копирует буфер на канву. соответсвенно svg он практически не касается никак.

    скорее всего svg надо будет генерировать самому ручками, зная какие объекты у вас есть и какие у них координаты.
    Ответ написан
    Комментировать
  • Google Tag Manager - как обойти AddBlock?

    riky
    @riky
    Laravel
    вопрос риторический.
    ничего толком не сделаете, остается только просить (умолять) пользователей отключить adblock, либо делать свой самописный аналогичный инструмент.
    Ответ написан
    Комментировать
  • Как с помощью PHP или JS показывать div в определенные дни?

    riky
    @riky
    Laravel
    $today = date('m-d');
    
    if ('11-21' <= $today && $today <= '11-25') {
       // показать
    }
    Ответ написан
    Комментировать
  • Как написать такой сайт?

    riky
    @riky
    Laravel
    в плане фронтенда тут не сложно. 95% работы все таки создание всех моделей.
    на фронтенде тут только вывод моделей по выбранному списку.
    через three js или babylon это делается легко, можно за вечер освоить.
    Ответ написан
    Комментировать
  • Как одновременно входить в несколько аккаунтов на автомате?

    riky
    @riky
    Laravel
    есть библиотека работающая через приватное апи https://github.com/mgp25/Instagram-API
    только учти что за 5 акков работающих с одного ип одновременно могут начать просить подтвердить по смс постоянно. так что лучше сразу готовь прокси
    Ответ написан
    Комментировать
  • В каких случаях стоит делать S.P.A. приложение?

    riky
    @riky
    Laravel
    без проблем используйте в закрытых админках и кабинетах. на поисковик там можно не ориентироваться.
    ну а иначе нужно заморочится на серверный рендеринг.
    Ответ написан
    Комментировать
  • Как выполнить код в букмарклете javascript и не перезаписать содержимое страницы?

    riky
    @riky
    Laravel
    часто использую букмарклеты, удобная и простая штука, можно удобно размещать в закладках, и накидать за 5 минут если чтото надо.
    я делаю так:
    javascript:(function (){ /* CODE */ })()

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

    javascript:(function (){
       var $inputs=document.getElementsByTagName('input'), 
          iMax=$inputs.length; 
          for(var i=iMax;i--;) if($inputs[i].type=='password') $inputs[i].type='text';
    })()


    или такой - показать используемую сайтом версию jquery
    javascript:(function(){if (window.jQuery){ alert(jQuery.fn.jquery);} else {alert('no jquery');} })();


    или генератор рандомных паролей
    javascript:(function (){var s=("ABCDEFGHKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz123456789").split("");var cnt=s.length;var codeLen=10; var pass=""; for(var i=0;i<codeLen;i++){pass+=s[Math.floor(Math.random()*cnt)];}prompt("new random password (A-Z a-z 0-9)", pass); })()
    Ответ написан
    Комментировать
  • Код вместо текста Node JS?

    riky
    @riky
    Laravel
    chat.append принимает на вход не html код текстом, а domElement. то есть делать надо через document.createElement(...)
    Ответ написан
    Комментировать
  • Простая защита от слива баланса СМС шлюза?

    riky
    @riky
    Laravel
    самый простой вариант сохранять время отправки в сессии и проверять перед отправкой
    if (time() - $_SESSION['last_sms_send'] > 100) { 
        send(); 
        $_SESSION['last_sms_send'] = time();
    }

    но злоумышленник может удалить сессионную куку в итоге запустится новая сессия и лимит не будет учитываться.
    поэтому нужно сохранять время отправки и ип.
    например в редис
    $redis->set('sms_send_' . $_SERVER['REMOTE_ADDR'], time());

    и аналогично первому варианту проверять.

    конечно кому сильно надо - возьмут прокси и обойдут такую защиту, но тут вы вряд ли что-то придумаете.
    Ответ написан
    Комментировать
  • Заменяют ли async/await промисы и колбеки?

    riky
    @riky
    Laravel
    да, это надстройка над промисами для более удобной работы с ними https://habrahabr.ru/post/282477/
    если планируете использовать async/await то промисы знать надо.
    Ответ написан
    Комментировать
  • Почему значение new Date различается на сервере и клиенте?

    riky
    @riky
    Laravel
    vetsmen:
    в продолжение Как сделать синхронизацию анимации у пользователей?

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

    все очень просто, с сервака можно еще + текущее время отправить. чтобы на клиенте синхронизировать время.
    то есть с сервака отправляем
    - текущее время (new Date)
    - время начала анимации (сохраненное в начале)
    - угол

    по идее все что изменилось с предыдущего варианта - вместо не точного клиентского времени используется точное серверное.

    также на клиенте в момент получения этого сообщения тоже сделать new Date и высчитать временную разницу "сервер-клиент" deltaTime. в дальнейшем deltaTime можно прибавлять к клиентскому времени (new Date) чтобы получить текущее точное серверное.
    Ответ написан
  • Как сделать синхронизацию анимации у пользователей?

    riky
    @riky
    Laravel
    на клиент помимо угла нужно отправлять время начала этой анимации.
    тогда клиент сможет рассчитать текущую фазу вращения для его текущего времени.
    Ответ написан
  • Можно ли сохранить у себя javascript от Adsense?

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

    riky
    @riky
    Laravel
    бутстрап не поддерживает из коробки несколько одновременно открытых модальных окон.

    погуглите какие костыли надо вставить чтобы заработало.

    хотя я бы на вашем месте подумал как обоитись без второго модала.
    Ответ написан
    Комментировать
  • Canvas или svg?

    riky
    @riky
    Laravel
    fabrikjs
    canvas, перетаскивания мышью из коробки, группировки.
    Ответ написан
    2 комментария
  • Как отсеять модераторов и поисковых ботов?

    riky
    @riky
    Laravel
    так модераторы и есть реальные люди.
    плюс ПС боты тоже используют браузеры (с js) иногда.
    так что разные говноредиректики и подмена контента сейчас слава богу быстро отсекается.
    Ответ написан
    Комментировать
  • Имеет ли смысл на NodeJSделать большое количество вычислений?

    riky
    @riky
    Laravel
    "TS и прочих трансплайтеров."
    они тоже компилируются в js и скорость получается та же. (хотя возможно какие то из них используют типизированные массивы, см ниже)

    любые библиотеки отпадывают по той же причине. единственный бонус от библиотек может быть при работе с гигансткими числами.

    насколько я помню в ноде числа все int32. когда целое число превышает эти рамки оно превращается в float где младшие разряды (для целых числе) сохраняются вплоть до 2^59 вроде бы, это весьма неплохо.

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

    riky
    @riky
    Laravel
    заучивать не нужно, ты же не в школе к экзаменам готовишься.
    тут дело точно не в памяти, а в то чтобы в целом понимать суть технологии и знать как ее применить.

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

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