кстати, я так понимаю все выборки осуществляются перебором? 
	тогда вот ещё одна ссылка в тему: http://javascript.ru/blog/tenshi/yavascriptovoe-dao реализация ужасная, но идеи стоит взять на заметку  | 
	
		
 Цитата: 
	
 UPD: почитал по ссылке, у меня всё также, кроме отсутствия ключей объектов (я такие объекты называю "гибридными" за то, что они содержат сильные стороны массивов и хешей), но их реализацию я уже давно задумал добавить в версию 4 своей либы, вместе с поддержкой воркеров. Ты бы почитал мануал на моем сайте, чтобы лучше понять, что же я сделал :) И я совсем не против объективных и трезвых советов.  | 
	
		
 Цитата: 
	
 Цитата: 
	
 Цитата: 
	
 Цитата: 
	
 Цитата: 
	
  | 
	
		
 > у меня всё также 
	как же создаются ключи? > Речь не о трансформации, а о фильтрации и группировке. одним словом это - выборка данных > Я знаю инструмент, который позволяет эффективно выполнить оба процесса в условиях большого высоконагруженного проекта. что же это за волшебное средство? > Модель всё равно вернёт data-ориентированные данные модель представления вернёт вью ориентированные данные. это яваскрипт, используй > "У меня" будет один шаблон, один запрос и две фильтрации. Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds.  | 
	
		
 Цитата: 
	
 И не забывай, что мой фреймворк можно юзать, как простой фреймворк данных (новые методы работы с массивами и объектами) или абстрактно представлять как некоторую БД, как удобнее и лучше должен решать сам разработчик. 
// Все чётные элементы увеличить на 1 (вместо строковых сокращений функций моно юзать простые функции)
$C([1,2,3,4,5,6,7]).forEach(':data[i]++', ':el % 2 == 0');
Сейчас есть проблемы при тупом переборе более 10к элементов за раз, но после внедрения воркеров я думаю проблема исчезнет (в рамках клиентских задача вряд ли будут коллекции по 10кк элементов).  | 
	
		
 Цитата: 
	
 Цитата: 
	
 Цитата: 
	
 
<?xml version="1.0" encoding="UTF-8"?>
<ten:root xmlns:ten="TEN" xmlns="http://www.w3.org/1999/xhtml">
  
  <!-- Один шаблон для списка пользователей, может лежать в отдельном файле -->
  <ten:block name="user-list">
    <ul>
      <ten:each array="this" item="user">
        <li><ten:echo data="user.name" /></li>
      </ten:each>
    </ul>
  </ten:block>
  
  <!-- Одна выборка всех пользователей. Если бы нам потребовались только совершеннолетние, в методе getUsers можно реализовать параметры fromAge и toAge. Пример приводить не буду -->
  <ten:async method="getUsers" arguments="userList">
    <ten:context object="new Collection(userList)">
      <!-- Первый список, первая фильтрация -->
      <ten:render block="user-list" context="this.get(':el.age < 18')" />
      <!-- Второй список, вторая фильтрация -->
      <ten:render block="user-list" context="this.get(':el.age >= 18')" />
    </ten:context>
  </ten:async>
</ten:root>
Ну и сама разметка списка может быть кастомизирована для каждого конкретного случая. В итоге: Цитата: 
	
 Такой подход используется и в XSL.  | 
	
		
 > АПИ для этого есть 
	где про него почитать? > $C([1,2,3,4,5,6,7]).forEach(':data[i]++', ':el % 2 == 0'); не убедительно 
[1,2,3,4,5,6,7].map(fucntion( val ){ return ( el % 2 ) ? el : el + 1 })
> после внедрения воркеров я думаю проблема исчезнет и куда же она денется? вместо использования ключей для быстрой выборки, ты выносишь перебор в асинхронную задачу, превращая клиентский код в лапшу из колбэков.  | 
	
		
 Цитата: 
	
 Цитата: 
	
 Цитата: 
	
 Я не навязываю стратегию решения задачи, разработчик сам решает что и как ему сделать. Тебе не нравится моя либа, т.к. ты писал свой велосипед, который никому кроме тебя не нужен, более того судя по кол-ву комментов люди даже не поняли, что ты хотел написать, у тебя нет ни доки ни мана, даже ссылка битая, о чём тут ещё говорить?  | 
	
		
 > Ты не поверишь, XSLT. 
	ты прав, не поверю. открой для себя хотябы двухпроходной xslt - это классно. на первом проходе делаем reduce данных от серверов, формируя модель представления. на втором - накладываем вёрстку. в качестве бонуса - возможность в любой момент посмотреть какая формируется модель - для дебага куда полезней, чем копаться в мешанине html-тегов. > Привет, копипаста моделей. она в любом случае будет. вопрос лишь в том, вносить ли в эту копипасту ещё и шаблоны или нет. к тому же не забывай про агрегацию и наследование, которые в js-моделях использовать куда проще, чем в шаблонах.  | 
	
		
 > Один шаблон для списка пользователей, может лежать в отдельном файле 
	замечательно, тут ты рендеришь модель отображения > Одна выборка всех пользователей. Если бы нам потребовались только совершеннолетние, в методе getUsers можно реализовать параметры fromAge и toAge. Пример приводить не буду а тут формируешь две модели и рендеришь их. то же самое на js могло бы выглядеть проще: 
var AllUsersModel= Model( function ( userList ){
    var model= { mature: [], amature= [] }
    userList.forEach( function( user ){
        model[ ( user.age >= 18 ) ? 'mature' : 'amature' ].push( user )
    }
    return model
} )
AllUsersModel( userList ).renderTo( place )
 | 
| Часовой пояс GMT +3, время: 16:29. |