Служба RIA Silverlight DomainDataSource, связь между автозагрузкой и RefreshInterval - PullRequest
3 голосов
/ 02 декабря 2010

У меня проблемы с пониманием связи между DomainDataSource.AutoLoad и DomainDataSource.RefreshInterval.

Если я включаю автозагрузку для данного DomainDataSource, сервер запрашивается неоднократно с очень высокой скоростью ... это не то, что я хочу.

Итак, я установил RefreshInterval на «00:00:10» (каждые 10 секунд, верно?), Но затем данные не загружаются вообще.

Если я установлю для AutoLoad значение true, значение RefreshInterval, похоже, ни на что не влияет.

И еще есть свойство LoadDelay, которое, похоже, связано с AutoLoad, но установка этого значения в 10 секунд не замедляет повторные запросы к серверу.

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

Я определенно делаю что-то не так, но я не могу понять, что, потому что я не понимаю специфику этих свойств. Я прочитал документы MSDN, но на этот раз они не очень помогли.

Надеюсь, это не слишком смелый вопрос.

1 Ответ

1 голос
/ 02 декабря 2010

MSDN проливает некоторый свет:

When AutoLoad is true, any property change affecting the load query
will automatically invoke a Load after the specified LoadDelay.
Examples of properties that impact the query are PageSize and
FilterOperator. Also, changes to dependency object collections, such as
FilterDescriptors and changes to the dependency properties on elements
contained in those collections, will affect the query and prompt
an automatic Load.

и для RefreshInterval

When a non-zero TimeSpan is specified, a Load operation is automatically
invoked each time the interval elapses, as long as CanLoad is true. When
this property is set, a timer starts, regardless of the value of the
AutoLoad property or whether a Load has been executed previously

Так что, похоже, что AutoLoad и RefreshInterval не имеют прямого отношения квсе.Следует учитывать свойство CanLoad, для которого во многих случаях устанавливается значение false.Это может быть то, что мешает вашему RefreshInterval работать.CanLoad получает значение false, если какая-либо сущность в DomainContext имеет ожидающие изменения, которые могут происходить без периодической реализации вами.

Настоящие эксперты по DDS являются членами команды RIA Services.Они тусуются на форумах RIA Services намного больше, чем здесь, так что спросить их может быть хорошей идеей.

...