Модераторы: Sardar
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Идея: DataSource, обновление инфы по событиям 
:(
    Опции темы
Sardar
Дата 21.7.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Внимание:  в топе "черновая" идея "что бы не забыть", отработаная с рабочим кодом будет чуть позже.

Суть идеи в некой концепции именнованного источника данных, который снабжает инфой связанный элемент.

Например задача: сделать два и более select'а, значения которых зависят от от выбранной опции предидущего селекта (hierselect):
Код

var selects = ["select1", "select2", "select3"].map(elementById).map(DataSource.SelectConsumer); //достали существующие селекты
//SelectConsumer может заполнить элемент select любой инфой из DataSource

selects.each(function(sel, idx, prev, next) { //заполним инфой, по дефлуту селекты все пустые, ну кроме первого
   DataSource.bind(idx, sel); //связали с начальными источниками, слекты заполнились опциями
   sel.element.addEventListener("change", function() {
       if(next) DataSource.bind(this.currentOption.value, next);  //меняем содержимое следующего селекта 
   }, false);
});

//инфа из DataSource это массивы записей (records, удобно под SQL БД), поля имеют имена. SelectConsumer "знает" дефолтовые имена
//записей для селекта (нужно определить), но можно их и назначить.

Как видим вся сила в DataSource.bind, который переключает источник инфы для обьекта, при этом содержимое обьекта очищаеться. Вторым важным свойством DataSource будет то, что при добавлении новых записей все связанные элементы автоматом обновляються.

Главная цель - загружаемые аяксом таблицы с сервера, это наиболее частый вид интеракции с сервером. Таблицы не в смысле 2мерные таблицы, а что угодно приходящее как список записей с одинаковой структурой. Показать это можно как угодно. Главное здесь маштабируемость, каналов может быть сколь угодно, связали, забыли, оно само обновляеться. Используя фильтры на DataSource можно выбирать только необходимое и сортировать, при этом как на клиенте, так и на сервере (DataSource просто перезапрашивает сервер с обновлёнными требованиями). Обший back-end на сервере для DataSource может сохранять настройки сортировки и прочего в сессии/регистре пользователя, что очень удобно. Back-end на сервере не используеться для генерации данных (только XML), он просто расширяет возможности позволяя сохранять статистику, т.е. опционален.

Идея заточена под аякс, получение чистой инфы XML'ем и форматирование на клиенте. Также главное здесь интерактивное изменение (сортировки, фильтры, листание по страницам, редактирование и т.д.) вывода таблицы.

Требуеться:
  • Понять какие *Consumer нужны (для каких элементов HTML, для каких своих компонент) и как реализовывать их просто, не в полном ООП стиле с туевой хучей интефейсов (код разбухает, не удобно)
  • Реализовать модель событий для DataSource или любой другой способ пропагации приходящей/генерируемой инфы 
  • Обозначит легковесный ифейс и общие механизмы работы
  • Придумать больше примеров что бы сейчас обозначить реальные требования

Выкладываем идеи и что требуеться в этот топ smile 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
vasac
Дата 21.7.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: нет
Всего: 36



Если здесь будет задействован ajax, то м.б. сначала разработать библиотеку для работы с аяксом, а потом разрабатывать те, которые будут использовать ее? 
PM WWW   Вверх
Sardar
Дата 21.7.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Нет, это просто идея, что бы также понять что потребуеться от библиотеки с аяксом. 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
vasac
Дата 21.7.2006, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: нет
Всего: 36



А есть ли реализации подобных глобальных идей? 
PM WWW   Вверх
Sardar
Дата 21.7.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Нет, этот топ и вообще этот раздел для того что бы обсудить идею и реализовать её. Пока обсуждаем, находим слабые стороны, вернее пока это черновик для меня, полное описание идеи будет позже. Библиотек реализующих такое пока не встречал, может просто не заметил smile 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
12345c
Дата 24.7.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: нет
Всего: 101



В концепции нужно предусмотреть статический вариант DataSource.bind, когда данные не предполагается менять. Тогда они могут быть включены в страницу, но объект DataSource.bind из страницы не удалён. Другой вариант DataSource.bind - многостраничный, когда данные повторяются на нескольких страницах сайта и статические или динамические. В случае статических они включаются в файл *.js. 
PM WWW   Вверх
Sardar
Дата 24.7.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Я было вообще подумал о общем механизме/спецификации, т.е. откуда данные брать не важно, массив/дерево из JS, аякс-XML или аякс-YAML, главное что их можно будет считывать потоком и управлять им. Все компоненты способные работать с DataSource смогут брать инфу не зная откуда она.

Сейчас занят админовкой, она вся из таблиц (инфа, заказы, контакты и т.д.), эти наработки будут основой для DataSource.  


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ViJio - фреймворк для JS | Следующая тема »


 




[ Время генерации скрипта: 0.1140 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.