input输入框大小设置_Input 文件多选框的"数量"限制

可能看到这个题目,大多数人想到的都是文件的个数限制,但今天我写的问题可能比较扯,因为也是自己在项目中碰到的问题。

场景:

其实之前一片文章提到过,就是文件输入框要上传很多很多文件。当我选择了2000多个文件的时候,不触发onChange,页面也没卡死。

排查过程:

1、代码质量问题。ok,我特码啥都不写,就onChange之后console.log一下总行了吧——凉凉!

2、文件总大小问题。另一批文件,尝试2000个文件,总大小50兆,可以触发onChange;2000个文件,总大小20兆,不触发——凉凉!

3、文件个数问题。另一批文件,总大小20兆,2000个文件,可以触发;另一批文件,20兆,1500个文件,不触发——凉凉!

死机中。。。。。。

网上找了半天都没找到答案啊,然后思否问了问题,时隔两天总算是有人回复了啊。

事情真相:

我们所用的input文件多选框控件,实际上应该是浏览器调用了windows(我的电脑是windows)的api,然后弹出的File Dialog控件。

而这个控件里面有个缓冲区是保存文件名的(这里的话哪位大神写的是保存文件名的,然后我问了一位写客户端的同学,他说里面存的是路径,我作为一个前端也不确定,先留个坑,查证完之后补充,先以那位大神写的为准)。

但总之可以确定的是,这个缓冲区是有大小设置的,而且既然是浏览器调用,那每个浏览器设置的大小应该也不一样。于是跑到火狐上试了一遍,发现在chrome中2000个不行的文件,火狐是可以的。总结起来可以这么理解,在设置的缓冲区大小的情况下,名字长的保存的数量多,名字短的保存的数量少。

下面是那个大神的回复以及给的参考网站:

1、思否回复

2、参考网站

总结一波吧,虽然浏览器功能日益强大了,万一出现神奇的问题也就难排查了,多了解新东西(不单单值前端)总不会是坏事,共勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值