[WT] [Архив] [Поиск] Главная Управление
[Совместно с Ычаном]

[Назад]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 5133)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаемые типы файлов: 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP
  • Максимально допустимый размер файлов: 10000 кБ.
  • Изображения, размер которых превышает 200 на 200 пикселей, будут уменьшены.
  • Ныне 1663 unique user posts. Посмотреть каталог
  • Радио:

Файл: 13134178766.png-(29.50KB, 385x126, backbone.png)
5133 No. 5133 watch    
У кого был опыт разработки веб-приложений для мобильных устройств, где требуется постоянное обновление данных в базе данных на сервере и/или использовать локальную базу данных и синхронизировать ее с сервером? Какие из существующих фреймворков лучше всего подходят для подобной задачи?

В данный момент работаю с jQuery Mobile, но по мере роста функционала, программа становится все более неповоротливой и раздутой. Подумываю изучить и прикрутить Backbone.js в надежде, что он немного упростит работу с данными. Стоит ли?

Какие вообще есть рекомендации по поводу тюнинга производительности мобильных веб-приложений с относительно большим объемом клиентских скриптов?
>> 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.). Операции собраны в батч. Батч отработал. Пришел респонс, блядь! "все обновилось, вот такие у нас теперь объекты, проверьте чо как." После чего прокси отдает их стору, а стор, блядь, добавляет эти объекты как НОВЫЕ. Дублирование на стороне клиента. С одинаковыми айдишниками, бро.

Короче, бро, не юзай сенчу тач. Учи яваскрипт. Забей на суперабстрактные фреймворки. И думай башкой.


Удалить сообщение []
Пароль  
[Mod]