Я добрался до выбора между angularjs и dojo в качестве рамки MV * переднего конца. Одна из особенностей, которая, на мой взгляд, имеет решающее значение, - это способность делать ненавязчивую и прозрачную аутентификацию. В этом отношении я был чрезвычайно впечатлен возможностью углового использования с использованием перехватчиков http. См. http://www.espeo.pl/2012/02/26/authentication-in-angularjs-application для хорошей реализации/объяснения примера.Как полностью перехватить и запросить HTTP-запросы с помощью dojo
Это позволяет поставить в очередь все ответы 401 во время ожидания успешного входа в систему и затем повторно передать их после успешного входа в систему, используя комбинацию событий трансляции, обработки событий и перехватчика http (плюс очередь запросов) , Накладные расходы по каждому запросу кажутся минимальными.
Я хотел сравнить способность додзё сделать то же самое, но из моего экзамена это не представляется возможным. Изучив документацию Dojo, похоже, что это возможно было бы в dojo 1.4 с использованием ioPipline, но это устарело в пользу dojo/request/notify, которое, как представляется, не обеспечивает как низкий уровень перехвата (в частности, это по-видимому, не дает доступа к объекту запроса при получении ошибки). также неясно, можно ли изменить или заменить ответ в пределах уведомляемой функции ...
Может ли кто-нибудь указать мне на очевидный пример этого, выполненного с использованием службы запроса/уведомления dojo или альтернативной методологии используя додзё? Критические требования заключаются в том, что аутентификация должна быть прозрачной для защищенных функций/контроллеров/объектов (они должны просто получить обещание, которое в конечном итоге выполняется), чтобы код аутентификации мог быть централизован (он не должен требовать модификации для каждого объекта/события/и т. д., который делает запрос) и что он должен быть защищен (в том смысле, что как аутентификация/авторизация должна произойти на стороне сервера, так и без обработки javascript должны быть в состоянии обойти это требование) ...
Этот пример не работает. Зарегистрированная функция никогда не вызывается для запроса XHR. – Andrew