标题说明了一切,我需要监控数据处理进度。例如,我对MySQL进行了一些分块插入并在每个块之后回显进度,如何在前端打印进度?我正在使用Dropzone.js,我目前的JS代码是(简化版本):
Dropzone.options.importdropzone = {
init: function() {
// I need something like
this.on("backendProccessing",function(response){
return response
})
this.on("success", function(file, response) {
// Success only return after backend finish process
})
}
};
也尝试过(不起作用,没有返回,只有成功):
this.on('xhr',function(){
// get the native XmlHttpRequest object
var xhr = $.ajaxSettings.xhr() ;
// set the onprogress event handler
xhr.onprogress = function(evt){ console.log('Doing') } ;
// set the onload event handler
xhr.onload = function(){ console.log('DONE!') } ;
// return the customized object
return xhr ;
});
所以我需要这样的东西:
this.on("backendProccessing",function(response){
return response
})
答案 0 :(得分:0)
它的接缝是不可能的,我需要稍微改变后端。 所以我在后端创建了另一个监视当前进度的方法,进度设置为bu session,所以我需要2个AJAX cals,1个用于上传ant start proccessing文件,另一个用于检查状态。
对于例子,处理网址为http://example.com/import 状态检查http://example.com/import/status
我可以检查状态,直到它返回特定值,例如
{
"status":"done"
}
我在
中每1秒调用一次检查状态功能this.on('sending',function() {
// calling another ajax here every x sec.
}