Ответы пользователя по тегу JavaScript
  • Как сделать трансляцию html-страницы клиенту?

    riky
    @riky
    Laravel
    ставить всевозможные глобальные эвент листенеры
    $(document).on('click' ...);
    и тд onscroll, onkey down/up/press, on mouse down/up.
    в листенере берем XPath путь элемента target на котором произошло событие.
    отправляем тип события и путь и вспомогательные параметры через вебсокеты.
    на второй стороне через сокеты слушаем эти события.
    ищем элемент по xpath и эмулируем это событие.

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

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

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

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

    riky
    @riky
    Laravel
    фантом не для такого - его можно разве что не для реалтайма использовать - а чтобы превью сгенерить.

    просто гуглить про вебсокеты + нода например.
    для каждой команды рисования нужно будет передавать все параметры обьекта. например человек рисует прямоугольник в сокет передается команда - прямоугольник координаты x1 y1 x2 y2, цвет #ff0000 - второй также по сокету получает эти данные и по данным рисуется такой же прямоугольник.
    Ответ написан
  • WebSockets или setInterval?

    riky
    @riky
    Laravel
    С учетом того что функционалом будут пользоваться буквально несколько человек и то что не сильно принципиально выдавать оповещение секунда в секунду, как например в онлайн чате, то можно забить на long-pooling и web-sockets и делать самый простой вариант - запросы по таймауту раз в 30-60сек.

    web-sockets слишком усложнит архитектуру. long-pooling создаст большую нагрузку, так как вы будете в цикле проверять базу, его есть смысл применять если не допускается задержка более 5-10сек. но для заказов мне кажется полминуты-минута не принципиально.
    Ответ написан
    2 комментария
  • Почему говорят, что веб-компоненты это будущее?

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

    помимо angularJS есть множество фреймворков с лучшей производительностью и позволяющие писать чтото более сложное чем туду лист.
    Ответ написан
    2 комментария
  • Какой инструмент использовать для личной БД с блогом?

    riky
    @riky
    Laravel
    может быть просто банальный evernote ?
    и для публичных статей - wordpress.

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

    riky
    @riky
    Laravel
    Тоже пару лет назад изучал webgl, тоже было интересно (пригодилось один раз по мелочи, но не жалею ).

    Поговаривают что WGL бесполезно изучать по исходникам других приложений и в этом есть доля правды. Хотя исходники пригодятся позже когда будете понимать основы.
    learningwebgl мне в свое время помог, я выбрал путь изучать именно без библиотек - очень полезный опыт потом можно перенести и на десктопный openGL, хотя версии там более новые.

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

    далее разобраться с матрицей трансформации - векторной арифметикой - посмотреть какие функции для векторов и матриц есть в шейдерном языке.
    разобраться для чего нужны пикселные и вертексные шейдеры. Лично мне в этом плане очень сильно помогло чтение спецификации OpenGL ES 2.0 (гуглите в сети).

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

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

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

    Надеюсь помог и желаю удачи!
    Ответ написан
    Комментировать