关于ajaxFileUpload插件 不能正常获取上传的进度问题

weixin_40710902 2018-09-28 02:02:15
大家好,这个问题我尽量简单说吧,尽量描述清楚。
第一、我单独使用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 + 异步侦听 不能正确展现,异步侦听 不能及时回调数据,必须等待上传执行完,才开始侦听,已经晚了。
各位大神谢谢了。
...全文
428 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40710902 2018-10-02
  • 打赏
  • 举报
回复
引用 5 楼 xiangyuecn 的回复:
应该是ajaxstatus请求已经发出了,但一直在等待响应吧。然后上传完毕ajaxstatus都跟着立马返回数据?

目测是哪个地方存在锁,比如脑残的session。获取状态的接口把session功能禁用了也许就解决了。

我是不会用session这个玩意的。


我用的是 .net mvc action动作方法里我用的是缓存 没有用session,关键是负责侦听进度的 ajax 所调用的动作方法都不执行
高坚果兄弟 2018-10-02
  • 打赏
  • 举报
回复
应该是ajaxstatus请求已经发出了,但一直在等待响应吧。然后上传完毕ajaxstatus都跟着立马返回数据?

目测是哪个地方存在锁,比如脑残的session。获取状态的接口把session功能禁用了也许就解决了。

我是不会用session这个玩意的。
weixin_40710902 2018-10-01
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
哦,sorry,你说的 ajaxFileUpload 这个东西我不知道它是干什么!

假设它使用 html 的文件客户端读取机制,那么你应该协调它的机制跟你的 ajaxstatus 中的所谓“地址”的关联关系。而你丝毫没有贴出你的设计来。你舍不得贴出你的设计,这个就无解了。但凡不舍得或者不屑于研究内部原理,遇到为题都只能求解答而往往无解,因为没人知道你是如何设计那些需要你实现的内部机制的。







可能我说的不清楚。
当我点击选择文件时,用的AjaxFileUpload 插件自动上传,下面是我自己写得进度 每隔300毫秒异步请求服务器返回上传进度。
问题是:侦听进度的ajax不执行(单独可以执行),一直等到上传成功后,它才执行。
  • 打赏
  • 举报
回复
哦,sorry,你说的 ajaxFileUpload 这个东西我不知道它是干什么! 假设它使用 html 的文件客户端读取机制,那么你应该协调它的机制跟你的 ajaxstatus 中的所谓“地址”的关联关系。而你丝毫没有贴出你的设计来。你舍不得贴出你的设计,这个就无解了。但凡不舍得或者不屑于研究内部原理,遇到为题都只能求解答而往往无解,因为没人知道你是如何设计那些需要你实现的内部机制的。
  • 打赏
  • 举报
回复
但凡专业开发,起码是从调试入手学习。也就是说,你应该学习过 http 调试器操作能力,才学会了 web 以及 dhtml 开发。如果你靠”猜“是不行”的。 你在学习过程中从来没有调试过 http 消息,才会提出这个所谓的设计!
  • 打赏
  • 举报
回复
挺逗的! http 协议是将上传的文件打包成一个 http 消息,然后上传给 web 服务器。什么叫做“上传进度的”啊? 你会不会是被一些坑爹的博客给骗了?

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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