Flex json автообновление датагрид - PullRequest
2 голосов
/ 18 апреля 2011

Я использую Flex 4. Имейте PHP-сервер и базу данных mysql с одной таблицей, состоящей из нескольких строк.

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

Мой вопрос заключается в том, как я могу узнать, когда кто-то вставляет новую строку в таблицу mysql, чтобы я мог автоматически обновлять мою коллекцию ArrayCollection, таким образом плавно обновляя свою сетку данных по одному элементу за раз?Прямо сейчас это только один раз, и соединение закрыто.Если кто-то вставит новую строку в базу данных, моя программа не распознает ее, если я не перезапущу ее.Я хотел бы автоматически обновлять AC всякий раз, когда одна новая строка вставляется в базу данных mysql.Есть ли способ, которым я могу «выслушать» это изменение?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2011

Ах, вы наткнулись на давний вопрос о веб-сфере: опрос или отправка?

Опрос означает, что вы пингуете сервер каждые несколько секунд или минут, чтобы проверить, изменились ли какие-либо данные,Если есть, ваш сервер отправляет вам новые измененные данные, которые обновляются соответствующим образом на вашем внешнем интерфейсе.«Протокол» о том, как интерпретировать, какая часть данных должна быть обновлена, полностью зависит от вас, поскольку нет реального стандарта (поскольку сами данные могут сильно отличаться от системы к системе).Опрос по-прежнему используется сегодня во многих системах, которые не нуждаются в критически важной «живой» информации, и, поскольку ему не требуется постоянное соединение, он особенно хорош для ненадежного интернета, такого как мобильный.Кроме того, все является HTTP-запросом, поэтому нет корпоративного брандмауэра, который может его блокировать.

Pushing означает, что у вас есть постоянное соединение между внешним и внутренним интерфейсом, которое обычно проходит через RTMPT (протокол HTTP UDP для обхода).корпоративные брандмауэры, но не 100%).Здорово, если вам нужны данные в реальном времени (например, финансовые данные), которые будут доставлены вам быстро.Однако пользователю необходимо постоянное подключение к Интернету, и вам необходим сервер, способный управлять количеством подключений и сеансами.Обычно большинство людей заканчивают тем, что используют Java, так как существует множество библиотек для обработки push-сообщений (BlazeDS, GRaniteDS, Livecycle, Wowza и т. Д.).

Поскольку вы используете PHP, вам, вероятно, придется использовать опрос какВаше решение, но необходимо реализовать его самостоятельно.Я уверен, что есть библиотеки, чтобы помочь вам.

0 голосов
/ 18 апреля 2011

Нет, автоматического способа сделать это не существует. Но вы можете регулярно «пинговать» свой сервер и запрашивать новые строки. Используйте

setInterval(myFunctionName, timeToWaitBetweenEachCallInMilliseconds);

чтобы сделать это.

...