Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Collection – фреймворк для управления данными (https://javascript.ru/forum/project/27848-collection-%E2%80%93-frejjmvork-dlya-upravleniya-dannymi.html)

vasa_c 02.05.2012 18:47

мне нравится.

только что представили либу, а уже v3.7.1

kobezzza 02.05.2012 18:57

Разработка этой либы ведётся уже несколько лет, отсюда и версия)
Я показывал версии: 2.x и 3.0, но ввиду отсутствия доки народ ничего не понял)

vadim5june 02.05.2012 19:00

Цитата:

Сообщение от kobezzza (Сообщение 172420)
ЗЫ: DOM storage можно расширять, а также можно без труда написать любой другой интерфейс для хранения данных.
ЗЫЗЫ: почти закончил работу над обзорной статьёй и небольшим обновлением :)

Вы используете ведь localStorage-там четкие ограничения не более 5мегабайт и увеличить нельзя-нет такого механизма даже-пока в этом будет проблема
Локальное хранилище
Преимущество вашей базы которая как я понял будет целиком в ОЗУ-очевидны-высокое быстродействие-если я все правильно понял
Проект заинтересовал-буду следить-но для меня главная проблема в практическом применении ограничения в 5мб-у меня текстовые файлы по 1.5-2 мб

kobezzza 02.05.2012 19:07

Цитата:

Сообщение от vadim5june (Сообщение 172428)
Вы используете ведь localStorage-там четкие ограничения не более 5мегабайт и увеличить нельзя-нет такого механизма даже-пока в этом будет проблема
Локальное хранилище
Преимущество вашей базы которая как я понял будет целиком в ОЗУ-очевидны-высокое быстродействие-если я все правильно понял
Проект заинтересовал-буду следить-но для меня главная проблема в практическом применении ограничения в 5мб-у меня текстовые файлы по 1.5-2 мб

Когда хранилище переполнено, многие браузеры предлагают его расширить + можно это изменить явно в настройках браузера. Конечно заставлять пользователя что-то делать - это не круто, здесь я согласен, НО интерфейс сохранения является маааленькой частью либы, и никак не влияет на логику ядра, т.е. мы можем написать сохранения используя например FlashStorage, IndexedDB и т.д.

Я подумаю над добавлением новых хранилищ в браузере.

По поводу скорости: всё зависит от архитектуры самой базы. Можно сделать супер скорость, а можно супер лаги, но я специально не навязывал свою структуру, т.к. потерялась бы универсальность.

kobezzza 03.05.2012 07:20

Вышла версия 3.7.2.

Нововведения и исправления:
  • добавлена поддержка работы с датой;
  • исправлена работа параметра lastIndexOf у итеративных методов.

Для работы с датой добавлено 2 статичных метода: date и between. Формат даты должен проходить Date.parse.

var db = [
    {name: 'aa', date: '2012-05-03T01:36:16.856Z'},
    {name: 'aa2', date: '2011-05-03T01:36:16.856Z'},
    {name: 'aa3', date: '2010-05-03T01:36:16.856Z'}
];

db = new Collection(db);

// получить данные в интервале
// $C - это псевдоним Collection
db.get(':$C.between(el.date, "2010-05-03T01:36:16.856Z", "2012-05-03T01:36:16.856Z")')


Запостил в песочницу хабра статью) Как бы то ни было ссылка на статью будет добавлена на оф. сайт или же (в случае если пост не пройдёт модерацию) размещена там явно.

kobezzza 03.05.2012 17:28

Пост с хабра: http://habrahabr.ru/post/143236/

devote 03.05.2012 17:44

kobezzza,
ты хоть смени версию QSA у себя.. я смотрю у тебя там лежит 1.2.1, но в ней есть один баг вылезающий при работе с селекторами имеющими слешы в контексте поиска. В версии 1.2.2 он исправлен: https://github.com/devote/QSA

kobezzza 03.05.2012 17:45

Цитата:

Сообщение от devote (Сообщение 172558)
kobezzza,
ты хоть смени версию QSA у себя.. я смотрю у тебя там лежит 1.2.1, но в ней есть один баг вылезающий при работе с селекторами имеющими слешы в контексте поиска. В версии 1.2.2 он исправлен: https://github.com/devote/QSA

Ок, перезалью:)

a.malitsky 14.05.2012 12:05

объединение коллекций в запросе get
 
Не понял как эмулировать join (использовать get сразу из нескольких коллекций одного стека). Ткните пожалуйста в нужную страницу учебника.

kobezzza 14.05.2012 19:47

Цитата:

Сообщение от a.malitsky (Сообщение 174402)
Не понял как эмулировать join (использовать get сразу из нескольких коллекций одного стека). Ткните пожалуйста в нужную страницу учебника.

В явном виде интерфейс отсутствует, однако можно использовать для этих целей вложенные запросы (обратите внимание, что один из входных параметров функции условия - это ссылка на сам экземпляр Collection), но лично я гораздо больше люблю использовать подход, когда есть одна коллекция состоящая из многих маленьких, связанных в родительски-дочерних отношениях, а манипуляции идут с помощью добавления в стек различных уровней контекста. Плюсов у такого подхода очень много, но самый главный - это почти мгновенная скорость обработки запросов.

Явный механизм связей между внешними стековыми коллекциями появится в 3.8, которую я думаю завершить на следующей недели.


Часовой пояс GMT +3, время: 14:47.