• Как сделать трансляцию html-страницы клиенту?

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

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

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

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

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

    benbor
    @benbor
    Помог ответ - не забудь лайкнуть
    Ну, самое бональное, использовать callback.
    function AppCreate(data, callback) {
      window.WebViewJavascriptBridge.callHandler('create', data, function(response) {
        callback(response);
        return response;
      })
    }
    AppCreate(data, function(response){
      // здесь что-то делать с response
    });

    Но так у Вас скоро начнется Callback Hall , поэтому придумали такую няшную либу как Q (provises)
    https://github.com/kriskowal/q
    UPD:
    function AppCreate(data) {
         var deferred = Q.defer();
          window.WebViewJavascriptBridge.callHandler('create', data, function(response) {
               deferred.resolve(data);
         });
        return response;
    }
    
    AppCreate(data).then(function(response){
      // здесь что-то делать с response
    });

    Отличие в том, что ваш запрос, ничего не знает о том, как его результат будут обрабатывать. Он лишь обещает вернуть данные, и возвращает их. Никаких колбеков внутрь запроса передавать не нужно
    Ответ написан
    3 комментария
  • Можно ли работать программистом закончив бакалавриат Бизнес-информатики?

    mmmaaak
    @mmmaaak
    Я Ваще без вышки работаю и норм, она у меня в процессе получения, название твоего направления никого не интересует (ну я думаю в большинстве компаний, по крайней мере там, где я собеседовался), всем важны твои навыки и умения. Я учусь хоть и на программиста, но в работе использую знания накопленные собственными силами, с третьего курса понял, поработав месяц на первой работе по специальности в качестве стажера, что в универе по большому счету дают знания, которые на практике особо не помогут, все приобретается собственными стараниями, со временем. Так что учиться можете на кого угодно, главное чтоб у Вас были знания. А диплом, судя по всему, чисто формальность (мое субъективное мнение, никому не навязываю, и не отрицаю, что кто-то где-то столкнулся с обратной ситуацией)
    Ответ написан
    2 комментария
  • Как сделать овальный блик на CSS3?

    LuckyTrue
    @LuckyTrue
    JS-разработчик
    Решение без градиента, с помощью box-shadow
    Ответ написан
    1 комментарий