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

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

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

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

2 ответа

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

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

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

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

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

после удаления он не отображается на вкладке, а при переходе на вкладку "Главная" он тоже не отображается, и только при повторном возвращении на ту же вкладку он не отображается.

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

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

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

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

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