关于使用ajaxFileUpload插件+上传进度问题

weixin_40710902 2018-09-27 10:51:38
大家好,这个问题我尽量简单说吧,尽量描述清楚。
第一、我单独使用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 + 异步侦听 不能正确展现,异步侦听 不能及时回调数据,必须等待上传执行完,才开始侦听,已经晚了。
各位大神谢谢了。
...全文
1296 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2018-10-03
  • 打赏
  • 举报
回复
异步的话
function ajaxstatus(){
     .....
    success: function(){}{
        ....
       ajaxstatus();
    }
}
或者
function ajaxstatus(){
     .....
    success: function(){}{
        设置成功标志
    }
}

sestinterval( function(){
     检查成功标志判断是不是再 ajaxstatus();
     重置标志
}, 3000);
weixin_40710902 2018-10-01
  • 打赏
  • 举报
回复


可能我说的不清楚。
当我点击选择文件时,用的AjaxFileUpload 插件自动上传,下面是我自己写得进度 每隔300毫秒异步请求服务器返回上传进度。
问题是:侦听进度的ajax不执行(单独可以执行),一直等到上传成功后,它才执行。
  • 打赏
  • 举报
回复
用到session服务器会加锁,导致必须等待另外一个请求完成后才会执行下一个请求
asp.net/asp网站浏览器打开一个长时间运行的页面同时打开其他页面为什么被挂起

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧