EDIT: Я собираюсь разбить это на два более конкретных вопроса.Как вы обрабатываете сложные объекты JavaScript на клиенте?
Я пытаюсь понять лучшие практики и шаблоны для разработки JavaScript на стороне клиента. В частности, что вы делаете для управления более сложными моделями данных на клиенте?
В качестве примера скажите, где вы управляете каким-то магазином в Интернете и имеете Продукт, с его довольно типичными свойствами: {id, description, price и т. Д.}. Но у продукта также есть набор категорий, с которыми он мог бы быть связан, и, следовательно, необходимо было выбрать еще два списка: AvailableCategories и AssociatedCategories. Конечно, чтобы сделать вещи более сложными, ваша ассоциация категорий с таблицами не является простым соединением, но имеет метаданные, такие как скалярное число от 1 до 10, которое описывает, насколько сильно связанный продукт с категорией. А затем скажем, что есть четыре или пять других ассоциаций, из которых одна имеет таблицу «Доступные», которая может потребовать подкачки (например, возможно, вы связываете продукт с чем-то, у которого есть миллион элементов в таблице, и вы хотите свернуть только 100 из них за один раз, с возможностью поиска и сортировки, конечно).
Моя точка зрения заключается в том, что существует множество моделей, а также объединение ассоциаций с метаинформацией, некоторые данные могут быть предварительно загружены или статически загружены на загрузку страницы, в то время как некоторые из них должны быть динамически загружены. И, конечно же, вы не просто хотите базовые модели, но и «наблюдаемые», чтобы, если кто-то выбирает цвет для связи с вашим продуктом, вы будете уведомлены (бесплатно) где-нибудь еще на странице изменений ,
Я думаю о переходе на платформу MVC на стороне клиента, например SproutCore, но хотелось бы увидеть некоторые более легкие варианты веса и шаблоны. Я был бы признателен за то, что вы используете, почему вы его используете, и любые другие мысли по этому проблемному пространству.
Спасибо.
Непонятный вопрос. Сложные модели сложны. SproutCore, еще одна инфраструктура пользовательского интерфейса, не делает сложные модели более простыми. – jfar 2010-11-30 16:40:03