>>
|
No. 5200
Заклинаю тебя, бро, не используй сенчатач. Хуй с ним что название похоже на название имажборды! Хуй с ним.
Хуже то, что обещанная абстрагированность от обмена данными с сервером (аналогично тому, как ORM позволяет абстрагироваться от базы данных) вяжет тебя по рукам и ногам конвенциями фреймворка и что взамен? Взамен хваленая, блядь, автоматика давится соплями при попытке выполнить batch operation!
Поясню примером. У нас есть компонент Model - псевдокласс (на самом деле прототип, который родил сраный ООП-дрочер). Модель описывает, да, верно, свойства сущностей и операции с ними. Модель, кроме того, интерфейс к Store. Stores бывают на стороне клиента и на стороне сервера. То есть, грубо говоря, персистентная хрень через браузер сторидж, либо кэш в памяти плюс реальные данные на серваке.
Породил объект модели, сунул туда данных, сохранил в стор.
Но это еще не все, бро. Если данные на серваке, их надо оттуда тягать и их надо туда передавать. Поэтому у клиентсайд-сторов есть Proxy.
RestProxy... AjaxProxy.... и прокси с JSONP. Различаются транспортом, конфигурируемостью и всем таким. И функцией. JSONP очень помогает при кроссдоменных запросах... пока ты не выясняешь, что удобство рестовой прокси (GET-POST-PUT-DELETE) это только для белых. Т.е. автоматической привязки прокси-операций к стор-операциям для джейсонпишной прокси не предусмотрено.
А может и предусмотрено, но документация... мда... короче, бро, не особо рассчитывай на документацию. (Она в аяксовом сайте. по ней еле-еле работает поиск. и ее почти нет.)
В общем, такой вот пердимонокль: Модель-Стор-Прокси. Слабо связанные. Магически слабосвязанные. Можно создать их отдельно. И они, вроде как, сами друг с другом законтачат. Если ты правильно напишешь конфигурацию. Правильных вариантов штук пять, удачи, бро. Like moving jelly with a knife. Easy-peasy.
И знаешь что самое хуевое? После того, как ты уговорил все это дело работать вместе, вьюшки - автоматически рендерить айтемы из модели и обновляться, контролеры - переключаться между вьюшками,... тралалала.... оказывается, что при попытке синхронизации локального Store (а мы серьезные ребята, ведь так, бро? у нас не какой-нибудь там тетрис, у нас приложение с персистентностью, экономящее трафик и юзающее последние достижения ебаного ХТМЛ6) — ОКАЗЫВАЕТСЯ БЛЯДЬ!!!
(извини.)
Так вот. оказывается. Что. Вот ты отдал на сервак сериализованные в джейсон изменившиеся объекты. через удобную рестовую проксю. Автоматом созданы операции апдейта для каждого. (POST /foo/1234, POST /foo/4532 etc.). Операции собраны в батч. Батч отработал. Пришел респонс, блядь! "все обновилось, вот такие у нас теперь объекты, проверьте чо как." После чего прокси отдает их стору, а стор, блядь, добавляет эти объекты как НОВЫЕ. Дублирование на стороне клиента. С одинаковыми айдишниками, бро.
Короче, бро, не юзай сенчу тач. Учи яваскрипт. Забей на суперабстрактные фреймворки. И думай башкой.
|