@wkololo_4ever, естественно. success Будет вызываться при каждом успешном ajax запросе. То есть number.length раз. Если вам нужно произвести какие-то действия когда все запросы отработают, то можно использовать обещания ($.ajax возвращает обещание о том, что функция выполнит что-то, обещания можно объединять в массивы и ждать когда все выполнится).
@wkololo_4ever, ну тогда опять же, в чем проблема? У вас в любом случае получается что на каждую запись нужно сделать ajax запрос, что значит что все происходит именно так как надо.
В случае если у вас в data Только один элемент, код выполнится один раз на каждую итерацию внешнего цикла, то есть number.length раз. Соответственно и ajax запросы будут вызываться столько же раз, и success в них так же будет вызываться для каждого сделанного запроса.
Или вам нужно объединить результаты всех запросов? Вы объясните толком тогда что не так.
ну предположим что первый фрагмент составляет 25% всего расстояния, значит нам нужно пройти по второму фрагменту еще 10%. Второй фрагмент составляет 20% от всего расстояния, и мы получаем пропорцию:
10% / x = 20% / длина_фрагмента
x тут наше искомое расстояние, которое мы должны пройти по фрагменту. Зная длину гипотенузы и угл найти катеты, а следовательно координаты не составляет труда.
@zelenin, если честно даже не знаю что вам показывать. Обычный RBAC из рецептов в wiki yii, разве что все роли имели иерархию и собирались при инициализации. Это собственно единственное отличие от других примеров. А так все стандартно.
p.s. на yii это все было года полтора назад, я на нем сейчас активно уже и не пишу. Только один проект на суппорте остался, а так только symfony и в последнее время все больше silex.
Только в промежуточный сервис и нужно выносить. В модели проверкам на доступ делать нечего. Ровно так же как в модели нечего делать и валидации... но это же yii...
А то что в контроллере за счет этого вырастает количество скучного и тупого хлама дублирующегося, так они для того и нужны. Но выносить проверки может ли пользователь делать то-то или то-то однозначно стоит вынести в сервисный слой.
сумма длин сегментов = 100%, из этого находим какую долю от 100 занимает длина нашего сегмента. Таким образом мы можем определить, относительно какого сегмента нам нужно располагать объект.
Опять же, зная что нам нужно расположить объект на расстоянии 35% от начала длины линии, мы можем посчитать долю расстояния от начала фрагмента (обычные пропорции). Зная точку начала фрагмента и угл, мы можем расчитать координаты объекта (простейшая триготометрия).
@ape364, в случае если время жизни нашего токена истекло, апишка должна ругаться ошибкой 401 not authorized. В этом случае на стороне клиента мы можем обработать эту ситуацию - отправляем запрос на продление жизни токена (по сути выделение нового), заменяем у себя токен и старый хэш на новый заменяем для возможности и потом продлить время жизни токена, ну и повторяем запрос.
Если при получении нового токена сервер его не дал, значит у нас не правильный хэш и мы должны попросить пользоваться авторизоваться.
@metamorph, позавчера добавлял именно это разделение прав. Возможность редактировать основную информацию заказа для группы пользователей, без возможности удаления. Так же есть разделение на регионы и т.д. До этого где-то месяца 4 назад на другом проекте схожее разделение прав понадобилось, причем изначально не предполагалось.
@Sputnik23 кто вам мешает:
1. сделать человеческий билд, зазиповать, залить на сервак по scp, распаковать. Можно автоматизировать через Phing.
2. запустить composer на сервере.
@Boniface собственно в этом и есть основной плюс. Проблемы производительности решаемы. Так же хранение части логики в процедурах понижает переносимость кода и усложняет поддержку и деплоймент.
Сейчас обновлю свой ответ.