Does one execution pass with JavaScript and returns progress to the browser.
function _batch_do() {
// HTTP POST required.
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
drupal_set_message(t('HTTP POST is required.'), 'error');
drupal_set_title(t('Error'));
return '';
}
// Perform actual processing.
list($percentage, $message) = _batch_process();
drupal_json_output(array(
'status' => TRUE,
'percentage' => $percentage,
'message' => $message,
));
}