2015-05-27 3 views
0

Целью задачи является обновление содержимого каждой строки из бэкэнд. Это означает, что запрос ajax для PHP.Удаленное обновление каждой строки сетки extjs периодически

Вначале таблица загружается базовыми значениями и периодически обновляется информация, загружаемая в каждую строку.

Выполняя задачу ExtJs, которая запускается каждую минуту, store.each перейдет по всем записям, получит идентификатор параметра и по успеху ajax, запись будет обновлена ​​и завершена. Однако этот подход имеет недостаток - если есть несколько строк, отправка 50 или 100 мгновенных запросов в большинстве случаев закончится таймаутами.

Получение всех данных в одно и то же время и обновление всей сетки не является опцией - вычисление всех данных для каждой из строк будет превышать ограничение времени запроса (~ 30 с), поэтому необходимо запросить их индивидуально, но не в то же время.

Есть ли хороший способ сделать это во внешнем?

ОБНОВЛЕНИЕ:

мне удалось использовать SetTimeout в качестве задержки для Ajax запросов внутри цикла store.each. Каждые 5 итераций задержка будет увеличена - поэтому к тому времени, когда задача Ext будет выполнена, и все результаты будут зациклены, они будут выполняться партиями по 5 каждые 5 секунд - и начните снова после повторной задачи.

+0

Вы можете использовать разбивку на страницы. Таким образом вы ограничиваете отображаемые (обработанные) результаты и можете обновить их все. –

ответ

0

Лучше отправить запрос на сервер и получить только набор элементов и заменить старые элементы на измененные.

Если вы не хотите перезагружать весь магазин, единственный вариант - отправлять запросы один за другим или упаковывать их в пакеты и обновлять их по пакету.

+0

, запрашивающий все записи, не будет работать в этом случае. Его отлично, если в сетке есть несколько, но с 50-100 это займет слишком много времени - математика, запросы и т. Д. Требуются несколько секунд. Поэтому, в конце концов, для возврата результата может потребоваться несколько минут - путь выше 30-дневного предела для запроса. –

+0

Как было сказано выше, лучшим способом является получение только измененных записей с сервера. Легче ли вам реализовать? Или даже с неизменными рядами вам нужно сделать математику? Обычно у меня есть столбец в базе данных под названием «updated_at» и может получать только записи, которые были изменены после определенного времени. –