2011-06-19 4 views
0

У меня есть сервер WCF и клиент silverlight. Клиент вызывает сервер для получения списка элементов.Как получить большой список товаров с сервера?

Существует несколько случаев, что элемент списка является очень большой, и я хочу, чтобы иметь возможность получить детали в более чем один вызов -

  • call1 => получить детали 0-100
  • Call2 (если пользователь нажимает кнопку «больше») => получает элемент 101-200
  • .
  • .
  • Позвоните N => получите 100 * n - 100 * (n + 1) предметов.

Как я могу это сделать?

Есть ли какой-нибудь «простой» образец?

Спасибо.

+0

Silverlight обеспечивает использование WCF в частности, ** прекратить ** вы загружать чрезмерно огромные наборы данных - вам нужно переосмыслить свое приложение - не найти способ обойти это ... –

ответ

2

Если у вас стандартный размер страницы 100, попросите клиента передать страницу, которую они хотят обслуживать. Или попросите клиента рассказать службе, насколько велики их страницы и какая страница они хотят

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

, что делает клиент явно сказать, что они хотят, является более надежным и масштабируемым решением и имеет простой LINQ с помощью Skip и Take

1

Как упоминает Ричард, пейджинг является общим вариантом. Также, возвращая результаты как поток (а не буферизованный байт [], а фактический поток - WCF имеет некоторые оговорки вокруг использования потока), как правило, будет наиболее эффективным. Также, как отмечают marc_s, локальное хранилище Silverlight не является огромным, поэтому держите этот недостаток в уме.

0

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

Смежные вопросы