使用进度条的文件上传服务器轮询

4
这并不是那些关于如何上传文件并显示进度条的重复问题。我的基本理解是:
  1. 我们有一个表单,将给定的输入文件发布到给定的url。
  2. 一旦点击提交按钮,我们就设置间隔时间,每秒运行一个JavaScript方法,该方法使用AJAX轮询服务器以获取此下载的状态。
唯一困惑我的问题在于,我尝试了这种方法,但当我查看FireBug控制台时,我可以看到所有这些jQuery AJAX调用。我看到其他人的实现,其中您在FireBug > Net > XHR中什么也看不到。
有人有任何想法如何实现这一点吗?
非常感谢任何建议。
干杯, Mosh
PS:只是强调,我不感兴趣使用Flash来完成这个。

你认为有人实际上实现了这个吗? - Robert Koritnik
你使用哪种编程语言?例如PHP有一些选项,但是当你使用ASP时这并没有什么帮助;-) - Pieter
你实际上是在问:如何从控制台面板中隐藏Ajax请求? - Robert Koritnik
4个回答

2

并不像看起来那么简单

我认为这需要一些低级别的Web服务器编程,因为文件在您的代码被执行之前被处理(上传)。这意味着您无法深入了解Web服务器内部的文件上传过程以进行轮询/调查...

如果您的场景确实应该按照以下方式工作:

  1. 选择一个文件
  2. 提交它(开始上传)
  3. Ajax轮询

那么你会遇到几个问题:

  • 如果您的Ajax请求应该从同一页运行,则无法正常工作,因为页面已经卸载(表单已经被发送),这意味着脚本很可能已经停止。
  • 如果您确实在不同的iframe中使用带有文件上传的表单并从父页面轮询上传,则必须实现一些低级别的服务器代码以提供我上面突出显示的内容。

客户端插件

这就是为什么使用像Uploadify这样的插件在客户端上更容易,它们可以使用Flash向服务器获取有关上传进度的信息。


1

1

0

这似乎实际上是几个问题。

  • 我可以建议的一个改进是使用Socket.io库,它使用WebSockets,并通过XHR或Flash回退到长轮询。它至少提供了一种结构化的方式来最小化轮询开销。

  • 当涉及到“隐藏请求”时,它们可能使用与XHR不同的方法,如果您没有看到XHR,则它们可能没有执行XHR。(这有点显而易见)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接