|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Vsevolod Lutovinov 2:5020/69.20 26 Dec 2000 03:09:58 To : Serge Shikov Subject : wap/wml -------------------------------------------------------------------------------- 25 Dec 00 16:19, you wrote to All: >> Дальше - по желанию. Можно, например, по правильно составленным >> регекспам в BrowserMatch выставлять переменные, отвечающие за >> размер карты, длину удобочитаемой строки и т. д. Они, в свою >> очередь, пользуются при генерации вывода. SS> Это какой-то бессмысленный для меня набор слов... При чем тут длина SS> строки вообще? Видимо мы говорим про разные вещи. Итак, у меня есть SS> исходные данные, для простоты пусть будет список книг, которые юзер SS> хочет купить. В виде XML: SS> <books> SS> <book> SS> <title></title> SS> <author></author> SS> <price></price> SS> <year></year> SS> ... SS> </book> SS> ... SS> </books> SS> Мне надо из этого сгененить набор wml-cards, сгруппированных в desks, SS> таким образом, чтобы не превысить предельные размеры для данного вида SS> устройства (допустим что узнать размеры - не проблема), чтобы они были SS> связаны ссылками вперед, если следующая карта есть, и в тоже время не SS> генерить слишком мелкие куски wml, чтобы не увеличивать число обменов SS> по сети. Т.е. попалось скажем десять книжек с короткими названиями - SS> они все влезли в одну "колоду карт", и мы ее за один раз передадим. SS> Т.е. desk - это скажем от 1 до 9 cards, чтобы можно было выбирать SS> одной кнопкой телефона, исходя из того что одна всегда влезает, а SS> больше 9 уже неудобно листать. Так это же ничем не отличается от построения двунаправленного списка, в котором элементы сгруппированы по несколько и размер групп ограничен. Идешь по исходному списку данных, подсчитываешь длину каждого элемента. Останавливаешься тогда, когда суммарный размер превысит некоторое значение. Формируешь первую карту, проставляешь в ней ссылку на следующую. Продолжаешь идти по списку дальше, предварительно начав вторую карту со ссылки назад. И так до конца. Пример такой реализации не только для списков, но и для деревьев - в Origin. Только там элементы дерева берутся из базы, но не думаю, что это принципиально важно. --- GoldED/386 3.0.1-asa6 * Origin: [ http://favomark.com ] (2:5020/69.20) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/33063a47fe1e.html, оценка из 5, голосов 10
|