jquery批量执行任务实时返回状态
要使用jQuery批量执行任务并实时返回状态,可以使用$.ajax
请求服务器端的批处理接口,并通过定时器(如setInterval
)持续检查任务状态。以下是一个简单的示例:
// 初始化任务
function initTask() {
var taskId = null;
// 假设这是从服务器获取的任务ID
$.ajax({
url: '/init-task-url',
type: 'POST',
data: { /* 需要发送的数据 */ },
success: function(response) {
taskId = response.taskId;
}
});
return taskId;
}
// 检查任务状态
function checkTaskStatus(taskId) {
$.ajax({
url: '/check-task-status-url',
type: 'GET',
data: { taskId: taskId },
success: function(response) {
if (response.status === 'completed') {
// 任务完成,处理结果
console.log('Task completed:', response.result);
clearInterval(intervalId); // 清除定时器
} else if (response.status === 'failed') {
// 任务失败,处理错误
console.error('Task failed:', response.error);
clearInterval(intervalId); // 清除定时器
} else {
// 任务进行中,继续等待
console.log('Task is ' + response.status + ', waiting...');
}
},
error: function(xhr, status, error) {
// 请求失败,处理错误
console.error('Error checking task status:', error);
}
});
}
// 开始执行任务
$(document).ready(function() {
var taskId = initTask();
if (taskId) {
var intervalId = setInterval(function() {
checkTaskStatus(taskId);
}, 2000); // 每2秒检查一次状态
}
});
在这个示例中,initTask
函数用于初始化任务,并获取任务ID。checkTaskStatus
函数用于定期检查任务状态。定时器每2秒钟触发一次checkTaskStatus
函数,并传入任务ID。服务器端的/check-task-status-url
接口会返回任务的当前状态,客户端JavaScript代码根据返回的状态进行相应的处理。
评论已关闭