РЕДАКТИРОВАТЬ: Я собираюсь разбить это на два более конкретных вопроса.
Я пытаюсь понять лучшие практики и шаблоны для разработки JavaScript на стороне клиента.В частности, что вы делаете для управления более сложными моделями данных на клиенте?
В качестве примера, скажем, вы управляли каким-то каталогом магазинов в Интернете, и у него был Продукт с его довольно типичными свойствами: {id, description, price и т.д…}.Но у продукта также есть набор категорий, с которыми он может быть связан, и поэтому необходимо получить еще два списка: AvailableCategories и AssociatedCategories.Конечно, чтобы усложнить задачу, ваша ассоциация категорий с таблицами - это не простое соединение, а метаданные, такие как скалярное число от 1 до 10, которое описывает, насколько сильно продукт связан с категорией.А затем, скажем, есть четыре или пять других ассоциаций, из которых у одной есть таблица «Доступно», для которой может потребоваться подкачка страниц (например, возможно, вы связываете продукт с чем-то, что содержит миллион элементов в таблице, и вы хотите удалитьтолько 100 из них за раз, с возможностью поиска и сортировки, конечно).
Я хочу сказать, что существует множество моделей, а также объединение ассоциаций с метаинформацией, некоторые данные могут быть предварительно извлечены или статически загруженына странице загрузки, в то время как некоторые должны быть извлечены динамически.И, конечно же, вам нужны не только базовые модели, но и «наблюдаемые», так что если кто-то выберет цвет для ассоциирования с вашим продуктом, вы будете уведомлены (бесплатно) где-то еще на странице изменений.
Я думаю о переходе на клиентскую среду MVC, такую как SproutCore, но хотел бы увидеть некоторые более легкие варианты и шаблоны.Буду признателен, если вы услышите, что вы используете, почему вы это используете, и любые другие мысли по этому проблемному пространству.
Спасибо.