文件上传 耗时特别长

来源:互联网 发布:建模 软件 ilis 编辑:程序博客网 时间:2024/04/30 23:14

http 文件上传  在ie浏览器下 耗时特别长

当使用 HTTP 文件上载功能上载大小为几兆字节的文件时,上载操作需要很长时间才能完成。


    项目中做了个上传视频的文件的功能,在firefox浏览器下 试了下 上传个500m个文件 耗时1:10秒  感觉还可以接受。 但是在Ie浏览器下 却要四分多钟, 特别的慢, 但是查看代码 也没发现有什么问题啊。  该设置缓冲区的地方 设置了缓冲区 该flush的地方flush了。  但就是特别的慢。 而且firefox和chrome下 都还行 就是用IE特别慢。

 本来觉的慢就慢吧,不用IE就是了, 但是项目是基于ie开发的,必须支持ie, 用其他浏览器上传 有问题 可以说是 浏览器的问题  可以不解决 但ie的文件 必须解决  哎! 

没办法 只能 baidu  google   goole  baidu.....  了 。 (再说 不解决 也不属于咋们程序员的工作态度啊 O(∩_∩)O哈哈~ 扯的有点远)

 最后总要发现了 原来是IE浏览器的问题。  因为微软在系统中做了个限定, 在文件上传的时候 缓冲区默认设置为8kb。 太小了 所以就很慢了

 加大他的值 速度就上去了  花花的 呵呵。 局域网内上传个500M的视频文件耗时 1:05秒。


解决方法 :

  1. 启动注册表编辑器 (Regedt32.exe)。
  2. 找到并单击以下注册表项:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  3. 编辑菜单上,单击添加值,然后添加以下注册表值:
    数值名称:SocketSendBufferLength
    数据类型:REG_DWORD
    基数:十进制
    数值数据:所需的缓冲区大小(以字节为单位)
    缓冲区大小值选项:
    16 KB 缓冲区 = 16384
    24 KB 缓冲区 = 24576
    32 KB 缓冲区 = 32768
    40 KB 缓冲区 = 40960
    48 KB 缓冲区 = 49152
    56 KB 缓冲区 = 57344
    64 KB 缓冲区 = 65536
  4. 退出注册表编辑器

至于SocketSendBufferLength的值设多大合适 还是自己去测试 比较好  我设的是256kb.

参考资料: http://support.microsoft.com/kb/329781/zh-cn
0 0
原创粉丝点击