Берете NoSQL или posgresql с json (hstore), сохраняете в "строки" любые ключи key1=value1, key2=value2, далее при запросе данных просто фильтруете по ним, если будет медленно то можете сделать по конкретным ключам индексы, либо сделать параметрический поиск (хранить несколько ключ+значение в одной индексированной "колонке")
jsfiddle вроде ожил, добавил начальный рейтинг: jsfiddle.net/lega911/N8y4M
Ну и к предыдущему комментарию, сравните вывод текста: (span data-bind="text: raiting")(/span) и просто {{rating}}
Кстати обратите внимание на al-repeat - "крутится" текущий элемент, а не вложенный - это гораздо удобнее в большинстве случаев. Например когда перед "крутящимся" li-элементом есть статические li-элементы.
Так же мне больше нравится биндинги по атрибутам чем в одном: al-css="", al-click="" вместо data-bind="css:{}, click:{}", причем в aLight у директив разные приоритеты выполнения.
1 пункт, про удобный биндинг {{model}} в тексте и атрибутах.
> Второй пункт и пятый
Да.
> Третье и четвертое, очень сомнительно
Оно не критично, но есть.
>Как я и говорил, вопрос ограничения обновлений больше не актуален
Нет, это про другое, попробуйте такой observable вызвать 1М раз - оно будет в "десятки тысяч" раз медленнее чем на голом js. Грубо говоря это while{ a(a()+1) } вместо while{ a++ }.
> но он не читабельный вообще
Просто там, coffeeScript
Я не предлагал место хранения файлов, просто указал акцент, что это не малая (большая) часть при хранении.
Можно в файлах, можно в S3, а вообще удобно хранить в gridFS, сами по шардам будут разъезжаться и т.п., в Я.Диске как раз его вроде и используют.
> Будут ли еще какие то плюшки кроме динамической схемы?
Масштабирование, разные типы индексов: geo, ttl и др. Очень удобны массивы, попробуйте на sql сделать поиск по нескольких тегам.
Объекты observable усложняют разработку, на маленьких приложениях оно не чувствуется, но в больших - оно будет раздражать и тормозить разработку.
У меня есть опыт того и другого, дак вот скорость разработки и читаемость у Angular Light выше (имхо). А вообще это в первую очередь зависит от того что лучше знает разработчик.
Для сравнения попробуйте на ko сделать такой биндинг-элемент6 jsfiddle.net/lega911/v2uf2
> С AngularJS я плакал к концу дня :)
Попробуйте Angular Light, там нет таких "барьеров" как модули, сервисы, провайдеры, константы. Директивы делаются просто - почти так же как биндинги в ko, и там тот же applyBindings ;)
Наверно что-то не так с настройками, может ниже установлено noauth=true или auth=false, или вообще другой конфиг используется, или запущенно без конфига. По предоставленной информации не определить проблему.
Да, элемент (кусок) выкусывается из DOM, но не разрушается, это видно если изменить этот DOM вручную, и при возврате вставляется обратно.
Эффективнее для чего? Для скорости переключения как раз эффективнее скрывать блоки. А выкусывание DOM и хранение в переменной памяти не сэкономит. Да и та страница не так уж и много жрет что-б на DOM экономить.
Это либо фича фреймворка, либо ещё какой-то тайный смыл, может для большей изоляции view-х друг от друга...
В любом случае каждый раз рендерить заново - плохой вариант. имхо.
Да, обычный second node, (без голосования стать мастером), запускаю обычный mongoump.
Кстати, для ограничения доступа, разработчики рекомендуют вместо авторизации использовать средства ОС.