Загрузка данных в реальном времени с помощью JQgrid - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть система, которая использует JQgrid для загрузки большого количества данных через XML. реальная проблема производительности заключается в том, что каждая строка обрабатывается в php в течение длительного времени (выборка вычислений и все виды php-качества ...), поэтому мне было интересно, возможно ли получить каждую обработанную строку LIVE - это означает, что общее количество нагрузка на сетку такая же, но пользовательский опыт лучше, так как он будет видеть, как сетка медленно заполняется ..

Возможно ли это вообще?

1 Ответ

0 голосов
/ 27 декабря 2011

Я бы достиг этого, изменив ваш метод загрузки сетки.Вместо того чтобы использовать простые средства извлечения данных (путем прямого доступа к ним в сетке через параметр url: myXMLData.php), я бы вместо этого вручную заполнил сетку вызовом addXmlData.

По сути, процесс будет состоять в том, чтобы инициализировать вашу сетку пустыми значениями, а затем запустить запрос к серверу, чтобы начать построение вашего ответа.Этот запрос будет немедленно возвращен, передав ссылку на местоположение XML, которое будет создаваться с течением времени.Кроме того, этот первоначальный запрос будет преобразовывать фоновую задачу на сервере, которая фактически выполняет обработку и построение XML во временном местоположении кэша (создавая его в том же месте, которое было возвращено в качестве ссылки).На стороне браузера эта ссылка сохраняется и периодически опрашивается для проверки новых XML-данных (с использованием методов jQuery Ajax).Получив ответ от каждого из этих опросов, используйте метод addXmlData (), который я связал выше, чтобы загрузить jqGrid с текущим набором данных.Опрос может прекратиться, когда ответ от сервера содержит все ожидаемые вами строки.Вам также потребуется периодически запускать на сервере задачу для очистки кэша XML.

...