我想为上传非常大的文件的用户提供进度条。我做了一些阅读并实现了一个非常简单的解决方案:
<form>
元素;其target
设置为隐藏iframe的ID。setInterval
启动重复的Ajax调用,使用上述会话对象向服务器查询百分比完成情况。如果之前的呼叫尚未完成,则呼叫每半秒重复一次,跳过Ajax呼叫。我使用调用中的数据来更新屏幕元素的width
。当服务器调用报告上载完成时,我清除间隔计时器。我创建了一个100兆字节的文件并使用我的界面上传。这是使用Firefox 3.6.3。我发现虽然上传需要20-25秒,但进度条直到最后才会更新。此外,整个浏览器基本上都被冻结,直到上传完成。
我认为我的方法必须有缺陷,但是我尝试使用IE6进行相同的页面,并且当它按照我设计的方式表现时完全惊讶 - 进度条每半秒更新一次,而整个上传只有花了大约15秒,比Firefox快得多。
我没有安装很多附加组件,但我尝试禁用Firebug并重新启动浏览器。这略微提高了性能 - 我上传中途可能还有一个额外的进度条 - 但仍然远远不能接受。
有谁能告诉我我能做些什么才能将Firefox的性能提升到IE6的水平?呃,我简直不敢相信我输入了那个。
编辑:
我刚尝试从与运行我的网络服务器不同的机器上的Firefox 3.6.3浏览器上传大文件,它运行正常。咦。
答案 0 :(得分:1)
我在使用Windows 7和Mac的Firefox到Mac上运行的服务器时遇到了同样的问题,发现Firebug成了问题。在您的远程计算机上,我怀疑您没有运行Firebug。禁用或卸载firebug,它应该可以正常工作。
答案 1 :(得分:0)
显然这是Linux的事情,而不是Firefox的事情。