list view и Dynamic loading

Горячо приветствую. Столкнулся с некоторой проблемкой при использовании динамической подгрузки для list view. Использую следующий код на стороне клиента:

var userframe_profile_friendlist = {
  view:"list", id:"userframe_profile_friendlist",
  select:true, scroll:'y', yCount:10,
  url:'api/userlist',
  datafetch:3,
  datathrottle: 100,
  loadahead:2	
};

на стороне сервера получаю только GET вызов с переданным урл. Но понять не могу, какие ещё атрибуты передаются помимо урл и передаются ли они вообще. Т.е. как мне определить какую часть данных должен отдавать сервер. Сам сервер пишу на node.js с использованием Express.js обертки, если это конечно имеет значение.
p.s. Не могу так же понять, работают ли для list следующие атрибуты: datafetch, loadahead, datathrottle… т.к. ни через заданный интервал, ни по событию scroll не происходит очередного вызова GET для сервера

День добрый

Способностью грузить данные во время скроллинга обладают только DataView и DataTable

http://docs.webix.com/search.php?query=datafetch

В случае с листом можно организовать схему с догрузкой данных ( когда лист скролится в конец, запускать загрузку доп. данных ) или просто использовать датавью вместо листа ( датавью с одной колонкой практически ничем и не отличается от листа )

Также чтобы заработала автоматическая загрузка, первоначальный датасет должен содержать информацию о общем количестве строк

{ "pos":0, "total_count":999, "data":[ ... data objects here ... ] }

P.S. никакой специфики nodejs и express в данном контексте не имеют, там все будет работать точно так же

И снова здравствуйте. Попробовал я использовать DataView и пришел к выводу, что мне в моем случае и это не поможет. Как я понял для подгрузки очередных порций данных на стороне сервера используется JSONDataConnector. Для php, Java, .net подходит такое решение, но вот для JavaScript на базе node.js я не нахожу подобного выхода. Отсюда делаю вывод, что мой путь это перехватывать onScroll у компонента, и по этому событию запрашивать у сервера очередную порцию данных.
Если ход моих размышлений верен, не будете ли вы любезны подсказать мне, как наиболее лаконично определить, что при scroll достигнут конец списка?

На самом деле JsonDataConnector скрывает достаточно простой протокол запроса данных.

  • первый запрос, в json данных указывается общее количество данных
  • последующие запросы - на сервер пересылаются параметры pos и start - количество и позиция с какой надо вернуть данные, ответ - обычный json

То есть на клиенте

{
		view:"dataview", xCount:1,
		url:"/data"
}

на сервере

app.get('/data', function(req, res){
	var start = req.param("start");
	var count = req.param("count");

	if (!start && !count){
		//first time call
		res.send({
			total_count:5000,
			data:[
				//initial set of data
				{ value:"1"},
				{ value:"2"},
				{ value:"3"}
			]
		});
	} else {
		//get "count" records from "pos" position
		var json = { pos:start, data:[] };
		for (var i = 0; i < count; i++) {
			json.data.push({ value:"a"+(start*1+(i+1)) })
		};
		res.send(json);
	}
});

ХМ… Великолепный ответ. Спасибо. Попробую таким образом сделать. Однако столкнулся с ещё одной проблемкой. Выставляя атрибут select:true, для dataview получаю ошибку следующего содержания “Cannot read property ‘$selected’ of undefined”. Смотрю debag код вебикса и вижу, что это происходит в момент проверки последнего data элемента, который должен указывать на количество элементов в динамической коллекции.
_data_loaded:function(){
if (this._settings.select)
this.data.each(function(obj){
if (obj.$selected) this.select(obj.id);
}, this);
}
т.е. последний индекс в массиве order объекта DataStore имеет значение undefined и при попытке доступа к атрибутам obj вебик вываливается в ошибку. Не знаю возможно это мой косяк… Передаю total_count и коллекцию data согласно вашему патерну

Это ошибка в коде компоненты
Фикс будет включен в следующий паблик билд.
Если у васть есть активная лицензия, в пользовательской зоне можно забрать webix 2.1.8 где проблема уже исправлена.

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