现在的位置: 网页制作教程网站制作经验 >正文
代码插件

WebUploader点击选择文件按钮无反应或延迟显示的解决办法

发表于2017/5/21 网站制作经验 0条评论 ⁄ 热度 11,792℃

最近做公司官网的项目,其中有一个上传证件照的功能,其实就是上传图片的功能,小萌是使用百度的一款插件WebUploader来做的,为什么使用这个插件呢?其原因是:WebUploader是一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+。两套运行时,同样的调用方式,可供用户任意选用。还有一点就是采用大文件分片并发上传,极大的提高了文件上传效率。基于这些优点,小萌选择了这款插件。

对于webuploader的使用方法,那么今天要介绍的是小萌在做官网项目的时候使用webuoploader遇到的几个问题。

问题一:WebUploader 某些浏览器如chrome,点击上传文件,选择框会延迟几秒才显示,反应很慢

一开始遇到这个问题的时候,小萌以为是因为网速慢的原因,并没有对此有过多的纠结,后来发现并不是,于是把测试地址丢给小呆,问在他那边慢不慢,事实证明,真的不是网络的问题,在webuploader的API中查了下,并没有查到什么,然后小呆在github中找到了一个解决办法,在webuploader初始化的时候改变其中的一个参数:

accept: {
  title: 'Images',
  extensions: 'jpg,jpeg,png',
  mimeTypes: 'image/*'
}

修改为

accept: {
  title: 'Images',
  extensions: 'jpg,jpeg,png',
  mimeTypes: 'image/jpg,image/jpeg,image/png'   //修改位置
}

此方法有点简单粗暴,看了之后才明白 webuploader 如果定义*的话,会检索所有格式,修改这个参数的原因是有选择的扫描文件类型,只选择扫描你设置的类型。小萌试了一下,修改之后确实不会再有延迟了,但是之前小萌初使用webuploader的时候并没有这种情况的发生,而且webuploader官网上的DEMO也是不延迟的,有人解释说是因为谷歌浏览器的更新,chrome 52.0.2743.80版本以上的版本都会出现延迟的情况,但是小萌不明白为啥官网的DEMO就不会有延迟呢。不过纠结这个问题是没有多大意义的,我们旨在解决问题。那么这个问题这样修改下就OK了。

问题二:WebUploader Firefox浏览器 点击上传文件无反应

这个问题其实比问题一更为严重,反应慢就算了,我可以等等,但是根本就无反应就苍了个天了,怎么办……哦怎么办……为什么火狐你就是不能用,害得我你害得我在你面前呼吸急促想要卸载掉你……各种百度无果,又让小呆帮忙我一起在github寻找解决方法,后来看到有个人说是有可能是因为上传按钮使用的是button的原因,建议修改为div。我修改了下,问题果然解决了,说是火狐对button按钮支持的问题,所以才会出现这个情况,虽然不知道为啥会这样,但是问题解决了就好。

问题三:WebUploader 部分低版本IE浏览器 点击上传文件无反应

对于IE这个问题,其实有些公司任性,不考虑IE兼容的话,可以不用理会,这个是因为IE不支持html5上传造成的,虽然说webuploader具有“默认会先尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash”这个功能,但是对于IE这种浏览器,有些问题你还真的没办法说出来个所以然,所以如果遇到此问题,可以将可以将runtimeOrder的值设置成flash,来强制使用 flash 运行。不过也不需要担心设置默认为flash 运行上传就会影响其速度,这点webuploader处理的还是很好的。

到这里,这篇文章就结束了,不知道有木有朋友遇到跟我一样的问题,小萌讲此记录下来,一个是用来提醒自己,一个是希望帮助到需要解决这些问题的小伙伴儿们。喜欢的给小萌点个喜欢哦,O(∩_∩)O谢谢

  • 暂无评论