解决input[type=file]打开时慢、卡顿问题
经过测试发现,在mac里面safari、Firefox、Chrome(opera不知道为啥老闪退)都没有卡顿问题
在windows里面,Firefox不卡顿,只有Chrome卡顿。
然而,这个插件是从另一个项目里面借用过来,再加上了限定图片类型的功能而已。 
原组件并没有这个卡顿问题,那么问题只可能是在限定图片类型这点上了。
先贴上我的代码
<input
    accpet="image/*"
    style={inputStyle}
    ref={c=> this._imgFile = c}
    onChange={this.handleChange.bind(this)}
    type="file" name="image" disabled={disabled}
/>
于是我决定先去掉accpet试试…… 
果然就没有了卡顿的问题。 
那么本包在试试accpet=”image/jpg”果然也不卡卡的了!! 
看来问题的所在就是”image/*”
但是写accpet的原意是要想要筛选出所有图片_(:з」∠)_ 
那么为了实现这个需求,同时提高用户体验,只能采取枚举了
修改后的代码
<input
    style={inputStyle}
    ref={c=> this._imgFile = c}
    onChange={this.handleChange.bind(this)}
    type="file" name="image" disabled={disabled}
    accpet="image/gif,image/png,image/jpeg,image/jpg,image/bmp"
/>
再试试,果然妥妥的了!
但是到底是为什么会这么卡呢??我查了查万能的Stack Overflow→_→
原来是因为Chrome的SafeBrowsing功能会在上传或保存时检查文件, 
如果网络连接到google的速度比较快呢,就没有什么问题。 
但是如果连接比较慢,或者干脆跪掉了,那SafeBrowsing就会让Chrome挂起一段时间,直到文件检查结束或者超时
使用 accept="image/png, image/jpeg, image/gif" 就可以解决这个问题,因为这些MIME类型在SafeBrowsing的白名单里面,不需要检查。 
但是如果用像是 accept="image/*" 这样的呢,就不行了,就有可能变得卡卡的。
解决input[type=file]打开时慢、卡顿问题的更多相关文章
- <input type="file" />浏览时只显示指定文件类型
		
<input type="file" />浏览时只显示指定文件类型 <input type="file" accept="appli ...
 - html中,文件上传时使用的<input type="file">的样式自定义
		
Web页面中,在需要上传文件时基本都会用到<input type="file">元素,它的默认样式: chrome下: IE下: 不管是上面哪种,样式都比较简单,和很多 ...
 - Android WebView 不支持 H5 input type="file" 解决方法
		
最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中.发现点击H5中 标签 不能打开android资源管理器. 通过网络搜索发现是因为 android webvie ...
 - 谷歌游览器对<input type='file'> change只能响应1次解决和样式的改变
		
在项目过程中遇到的需要上传本地文件,file的原始控件不太美观,但是这个控件和button有点不太一样, 改变这个样式的思路就是在控件外面套一层链接,然后把file控件的透明度设置为0(透明).样式只 ...
 - 隐藏<input type="file"> 实现点击div或图片打开文件选择路径
		
HTML: <input type="file" style="display:none" id="addfile-btn"> ...
 - python+selenium:解决上传文件<input type='file'>标签属性被css的visibility隐藏导致无法定位元素的问题
		
要想上传文件,需要找到在HTML中<input type="file" />这个标签,有它就可以利用send_keys上传文件,不过这里的<input>元素 ...
 - 文件上传按钮input[type="file"]按钮美化时在IE8中的bug【兼容至IE8】
		
首先看一下完成后的效果,鼠标移入可改变为手指的效果. 在此就不加图标了 <label class="file-upload"> <span>上传附件< ...
 - Android:让WebView支持<input type=”file”…>元素
		
最近在做一个活动页面:用户上传一张图片进行缩放.旋转后点击下一步填写内容后生成图片! 做好后经过各种测试是没有问题的,基本没有什么明显BUG,流程都能走通,但是嵌入到APP后,问题就来了! 在IOS上 ...
 - INPUT[type=file]的change事件不触发问题
		
在网页上要操作文件通常会使用INPUT[type=file]控件,但这个控件的设计很蛋疼.它不像其它编程语言中文件选择后会触发一个事件,只是让上面的文字改变,而这个改变可能会触发change事件而已. ...
 
随机推荐
- Unslider Web前端框架之图片轮播
			
前端框架,前端组件,前端库,都是一个意思,能看源码. 最近做H5小游戏,用到了图片轮播的组件,而且要求支持移动端触屏滑动.一开始用的是nivo slider,但是对大小不一样的图不支持box 的参数设 ...
 - 学习总结------Servlet的简单理解
			
1.什么是Servlet Servlet是一个Java编写的程序,在服务器端运行的(如tomcat) Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览 ...
 - ubuntu 系统 更改屏幕亮度为最大(15级亮度)
			
历经千辛万苦终于搞定屏幕亮度,现将成果分享如下. 硬件:联想K29 系统:UBUNTU 14.04 一.执行命令 sudo gedit /etc/default/grub 二.更改文本 然后找到 GR ...
 - [转] .NET领域驱动设计—初尝(原则、工具、过程、框架)
			
阅读目录: 1.原则 1.1.精简聚合 1.2.分离用例与接口功能(设计模式的用武之地) 2.工具.框架.组件 3.过程 1]原则 原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时 ...
 - 自动清理SQLServerErrorLog错误日志避免太大
			
问题描述:开启SQLServer自动备份后,备份文件越来越多,有没有及时清理,导致服务器空间不足,备份出错,以至于出现几个G的ErrorLog文件,影响系统的登录管理. 解决办法:定期清理SQLSer ...
 - Java Web开发环境配置(JDK+Tomcat++IDEA 14)
			
对于未接触过java web开发的大家而言,应该和我一样对java web编程开发比较迷茫,通过查一些资料,大致清楚了java web开发环境的一些基本配置,未做过相关编程的人员可以看一看,由于我刚接 ...
 - Testlink安装步骤Checking if C:\inetpub\wwwroot\testlink-1.9.3\gui\templates_c directory is writable Failed !
			
Testlink安装过程中问题现象: Checking if C:\inetpub\wwwroot\testlink-1.9.3\gui\templates_c directory is writab ...
 - spring +springmvc+mybatis组合applicationContext.xml文件配置
			
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
 - 学习笔记TF024:TensorFlow实现Softmax Regression(回归)识别手写数字
			
TensorFlow实现Softmax Regression(回归)识别手写数字.MNIST(Mixed National Institute of Standards and Technology ...
 - Centos7yum安装Redis详细教程
			
原本是在自己的mac上安装redis的,通过brew去安装的redis觉得很简单,实际macos系统与centos系统还是有一些区别的. 1.yum安装redis服务 sudo yum install ...