Ответы пользователя по тегу JavaScript
  • Какие есть инструменты для упращения разработки на WebGL?

    riky
    @riky
    Laravel
    серьезных игр на webgl нет, забудьте. из-за старого opengl графика все равно будет убогая. если не ошибаюсь вы видели не q3, а q2...
    а портируют с нуля, берут и пишут ручками, из старой игры можно взять текстуры, модели, насчет шейдеров уже не уверен, ну и код естественно переписывать там С а тут js.

    webgl подходит только для красивых небольших 3д презенташек, а также очень быстрый рендеринг 2d, для 2д игр пойдет.

    Как они умудряются портировать карты из пк версий?

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

    из готовых движков есть Unity3D там вроде бы есть экспорт в webgl, но многого от этого не ждите.
    Ответ написан
  • Не работает JS функция. Не присваивается значение тексту. Где ошибка?

    riky
    @riky
    Laravel
    function DNAStrand(dna){
    var dnk = '', i = 0;
      for (i; i < dna.length; i++){
      switch(dna[i]){
      case 'A': (dnk += 'T'); break;
      case 'T': (dnk += 'A'); break;
      case 'C': (dnk += 'G'); break;
      default : (dnk += 'C');
      }
      };
      return dnk;
    }
    Ответ написан
    Комментировать
  • Какие есть варианты реализации встраиваемого на сайт виджета витрины магазина?

    riky
    @riky
    Laravel
    при встраивании в div минус в том что сайт который встривает имеет полный доступ к контенту. может менять дизайн/код и тд. из плюсов только если нужно чтобы этот сайт получал кэллбэки на разные действия. например когда клиент добавил в корзину.
    с iframe это сделать чуть сложнее (через postMessage). iframe дает вам полную изоляцию от сайтов, они уже не смогут подглядывать внутрь и модифицировать.
    также если высота контента должна меняться, то с див все просто, для iframe нужно опять же делать через postMessage.

    по реализации: либо бюджетный вариант - просто отдельная версия сайта с переходами внутри (еще один плюс iframe - страницу можно обновлять, делать переходы на другие урл). бюджетный, потому что фронтенд простейший, можете даже просто ваш сайт без header/footer туда запихнуть.
    не бюджетный - SPA приложение, для него просто используйте любой js фреймворк (ангулар/реакт и тд).
    Ответ написан
    3 комментария
  • Как автоматизировать обход сайта с HTML5 canvas?

    riky
    @riky
    Laravel
    делал такое именно поиском картинки в картинке. вполне спортивно, машинное зрение и распознавание образов тут не надо. удобно что не нужно изучать внутреннюю работу игры и не зависишь от изменений кода/новых версий. также удобно для игр с закрытым кодом (flash).

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

    чуть сложнее но круче: извлечь js код и посмотреть внутренне апи (сложность в том что код скорее всего минимифицирован и возможно обфусцирован, тогда без названия переменных может быть сложнее). после разбора кода его можно поменять (дописать свою бизнес логику) и подменить в браузере, можно добавить новые кнопки и функции в интерфейс.

    сам не пробовал, но что-то слышал про toolXYZ

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

    riky
    @riky
    Laravel
    предлагаю просто в js делать закладки. например проверка текущего домена, если не равен вашему тестовому - редиректить на ваш домен с предупреждением типа работа не была оплачена.
    только естественно нужно усложнить и запутать
    - во первых - название домена не должно легко находится (можно например использовать хэш функции, типа md5, наличие кода которой также усложнит разбор кода)
    - во вторых хотя бы js обфусцировать, лучше всего придумать свою функцию обфускации, которая берет весь код скрипта и как то его преобразует, либо хотя бы частично.
    - желательно чтобы редирект был не слишком явный, например наступает только в 1% запусков и срабатывает только через 2 минуты. это также усложнит поиск дебаггером, + клиент может стырить код (или заказать кому то копирование) - и он покажется ему рабочим, кинет вас, а потом поймет что зря это сделал. но даже срабатывая 1% раз, эта защита испортит ему репутацию.

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

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

    100% защита это также как и в десктоп программах - только если часть алгоритма будет выполняться на вашем сервере (облачная обработка/сервисы). но это для вас наверное не очень актуально.

    еще один неплохой вариант - сделать приложение на любом десктопном языке программирования типа мини веббраузер. то есть все приложение это просто WebView во весь экран. и клиенту вы передаете один ехе файл который он должен запустить и увидеть сайт. скопировать будет очень сложно, если хорошо упаковать, сам клиент этого сделать не сможет скорее всгео, заказать взлом выйдет наверное не дешевле чем ваша работа. из минусов не очень удобно, для обоих, и клиент не сможет проверить качество кода и работу в реальных браузерах. PS: ищите компоненты WebView на базе хромиума, чаще всего стандартные компоненты основаны на IE да еще старых версий. также можно попробовать использовать для этих же целей понятные для фронтендеров срежы типа NWJS или electron - все программирование на JS и построены на базе хромиума, но в них сложнее обеспечить защиту кода, хотя тоже в какой то степени можно.

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

    riky
    @riky
    Laravel
    используйте просто любой js плагин, например masonry
    Ответ написан
  • Как правильно заменить confirm функцию на свою?

    riky
    @riky
    Laravel
    confirm полностью блокирует js. (например если на стр есть js анимация - то она остановится пока конфирм не закроется, то же с alert и prompt)

    у вас так сделать не получится никак. делайте 2 кэллбека на подтверждение и отмену, которые передаются в эту функцию.
    mscConfirm("Вы подтверждаете действие?", function (){
        alert('confirm');
    }, function (){
        alert('cancel');
    });
    Ответ написан
  • Клоакинг или нет?

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

    riky
    @riky
    Laravel
    пример ересь какая то.
    потому что все это заменяется на
    function test(){
       return 6;
    }


    а вообще кто вам запрещает, учитывайте только что лишний вызов функции - лишний оверхэд по ресурсам.
    но если у вас там всего несколько итераций, то это конечно никто не заметит.
    Ответ написан
    5 комментариев
  • Почему как ресайзишь браузер все картинки встают на место?

    riky
    @riky
    Laravel
    непонятно откуда у вас берется занчение itemWidth
    возможно берется ширина какой то картинки и на тот момент картинка еще не загрузилась поэтому itemWidth не то что хотелось бы.
    рекомендую в resize вывести в консоль ее значение.
    при setInterval думаю будет заметно как значение было 0 неск раз, а потом станет нормальным
    Ответ написан
    Комментировать
  • Насколько небезопасно делать функции-обертки для запросов в БД на JS?

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

    riky
    @riky
    Laravel
    <script language="javascript" type="text/javascript">
      function resizeIframe(obj) {
        obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
      }
    </script>


    и у фрейма
    <iframe src="..." frameborder="0" scrolling="no" onload="resizeIframe(this)" />
    Ответ написан
    8 комментариев
  • Каковы реальные лимиты (ограничения) в Vk API?

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

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

    riky
    @riky
    Laravel
    без трояна на компе юзера(в том числе браузернеые приложения) - нет.
    Ответ написан
    Комментировать
  • Стоит ли связываться с Meteor.Js?

    riky
    @riky
    Laravel
    после этого закидываем на сервер и пытаемся запустить через node (перед этим npm install и всякие MONGO_URL)
    так вот, если я его просто запускаю node main.js то не чего не происходит, а если запускаю к примеру через forever то запускается нормально. Что я упускаю?


    запускайте через
    npm start

    или просто
    meteor
    Ответ написан
    2 комментария
  • Возможно ли преобразование адреса в координаты на клиенте?

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

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

    см подробнее
    https://github.com/atom/electron/blob/master/docs/...
    https://github.com/atom/electron/blob/master/docs/...
    Ответ написан
    Комментировать
  • Как передавать клиенту минимум файлов, информации?

    riky
    @riky
    Laravel
    перенести логику на сервер, а клиент только viewer, тогда мухлевать там будет негде.
    Ответ написан
  • Как остановить setInterval?

    riky
    @riky
    Laravel
    во первых clearInterval
    во вторых функцию вы сразу же вызываете

    надо так
    кнопка.addEventListener ("mouseup" , function() { 
        clearInterval(timerId); 
    } , false);
    Ответ написан
    Комментировать