Я не знаю, на каком стеке вы работаете, но что вы можете сделать с точки зрения общего подхода.
Как добавить часть Json в задачу?
Если у вас есть доступ к memcached или чему-то в этом роде, вы можете использовать его для хранения хода выполнения задачи. Таким же образом вы можете использовать базу данных или даже файл, поскольку вы хотите сохранить только число.
После того, как дать число выполнения различных заданий, которые вы не знаете, сколько времени это займет. Я бы сказал, если ваша обработка основана на цикле, как вы обновляете n строк, вы можете просто использовать это в качестве индикатора.
Я думаю, вам не нужно беспокоиться о том, чтобы индикатор прогресса был точным, просто он должен дать приблизительное представление о том, где происходит обработка.
Как обновить индикатор выполнения с заданным результатом Json?
ExtJS имеет TaskManager , который позволит вам выполнять ajax-запрос каждую n секунду, извлекать прогресс и обновлять прикрепленную индикатор выполнения.
// Start a simple clock task that updates a div once per second
var task = {
run: function(){
Ext.fly('clock').update(new Date().format('g:i:s A'));
},
interval: 1000 //1 second
}
Ext.TaskMgr.start(task);