Возможная проблема с кэшированием данных при использовании гибкой сетки данных - PullRequest
0 голосов
/ 14 ноября 2010

У меня есть приложение, в котором есть 5 вкладок. Каждая вкладка имеет сетку данных. Поставщик данных к сетке данных на 1-й вкладке является общим поставщиком данных к сетям данных на других вкладках. Данные в каждой вкладке зависят от состояния, за исключением 1-й вкладки, где отображаются все данные. Теперь данные для главной вкладки обновляются каждую минуту с использованием таймера для извлечения новых данных из серверной части [Используйте Blazeds для взаимодействия с кодом на стороне сервера, т.е. Java].

После того, как я выполню любую операцию с любой строкой на любой вкладке, кроме 1-й, мне нужно удалить строку из этой таблицы данных. Я могу сделать это, удалив запись из провайдера данных, но как только я вернусь на главную вкладку и вернусь на вкладку, где я выполнил операцию, я найду удаленную запись обратно. Здесь следует отметить, что запись отсутствует на главной вкладке и не на вкладке, где я выполняла операцию, но как только я перемещаюсь между вкладками, она отображается в пользовательском интерфейсе. Но если я делаю обновление, используя F5, он ведет себя нормально.

Мне было просто интересно, связана ли эта проблема с кэшированием данных на стороне клиента, и если да, что может быть решением для этого?

Ответы [ 2 ]

1 голос
/ 11 июля 2011

После удаления объекта из arrayCollection / data - запустите collectionName.refresh() для него.

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

Если вы добавите привязывающего прослушивателя / наблюдателя изменений на объект, связанный с сетью данных, которая прослеживается до консоли, когда она получает событие CHANGE, держу пари, вы получите сюрприз!

(кстати, это как быстро отладить проблему такого типа).

0 голосов
/ 15 ноября 2010

В вашей ситуации очень трудно сказать, не глядя на ваш код.Я согласен с комментариями, переданными Flextras.

после удаления он не отображается на вкладке, а при переходе на главную вкладку он тоже не отображается, и только при возврате на ту же вкладку он не отображается.

Кажется, может быть проблема с вашими запросами к БД [может быть].Почему бы вам не перепроверить ваши запросы, где после выполнения операции удаления отражаются таблицы БД или нет.

Если вышеприведенное окажется ложным, вернитесь к следующемушаг.

  • Что дает вам trace () поставщика данных.Я имею в виду, что это содержит?Попробуйте это на событии select на вкладке.

  • Ваш поставщик данных может содержать предыдущие значения, хотя элемент из удаляемой сетки не отражает поставщик данных.Пытались ли вы обновить сетку данных или почему вы не вызываете метод invalidateProperties () для проверки.

  • Еще раз несколько вкладок кода могут помочь вам и нам много времени датьправильный ответ на вопрос.
...