关于ajaxFileUpload插件 不能正常获取上传的进度问题
大家好,这个问题我尽量简单说吧,尽量描述清楚。
第一、我单独使用ajaxFileUpload插件做单文件上传 (后台采用文件流的方式) 能够正确上传成功。
客户端代码片段,可以忽略
$.ajaxFileUpload({
url: '地址', //用于文件上传的服务器端请求地址
secureuri: false, //是否需要安全协议,一般设置为false
fileElementId: 'InputUpload', //文件上传域的ID
type: "post",
dataType: 'text', //返回值类型 一般设置为json 但json 一直返回不了 遗留问题
success: function (data, status) //服务器成功响应处理函数
{
}
});
第二 我单独做了另一个Ajax 用来做上传进度的侦听,每300毫秒执行一次,调试没有问题。
代码片段:可以忽略
t1 = setInterval("ajaxstatus()", 300);
var t1;
function ajaxstatus() {
$.ajax({
url: "地址",
type: "GET",
dataType: "text",
beforeSend: function () {},
success: function (data) {}});
第三 两个合起来一起执行,(都是异步),发现问题。(两个ajax调用分别用两个方法封装起来)。问题是:
这两个ajax 无论哪个先后顺序,总是第一个管上传的ajaxFileUpload先提交的服务器执行上传,并且等回调返回结果了,
第二个管侦听进度的Ajax 才陆续提交服务器(此时跟请求队列差不多 ,调试跟断点时已经积攒了很多次了)
造成了侦听不能及时回调数据。困扰我很久的问题了。
总结:ajaxFileUpload + 异步侦听 不能正确展现,异步侦听 不能及时回调数据,必须等待上传执行完,才开始侦听,已经晚了。
各位大神谢谢了。