首先申明,作为一名主业为后段开发的程序员,但是,我觉得前端我们也是需要了解和掌握的,这样开发起来可以和前端妹子很好的交流沟通,甚至有时可以直接指出他们的一些代码问题,这样看起来,前端妹子是不是会对你肃然起敬,一不小心,说不定我们还解决了作为程序员的老大难问题——单身,所以,同行们,加油行动起来!
由于项目接近尾声,测试们在测试的时候疯狂的报浏览器卡死问题,没办法,于是老大看我平时也会写一些前端页面的基础上,让我帮忙分析看看啥问题,push代码下来,一看,,瞬间懵逼,原来他们在开发的时候追求效率,压根就没有准备兼容ie浏览器,谷歌浏览器,一直调试一直爽,谁用谁懂得, 所以就苦了我,起了那一大堆的代码在ie上调试找问题,那种一个按键下去过个5-6秒才反应过来的痛苦。。。。
好了,废话不多说,接下来直接讲问题
使用new FormData 对象作为文件接受对象,读取用户图片中的信息之后,在第二次上传图片时候,会将当前的文件对象缓存删除,不然第二次上传读取的对象信息就会出现错误,,,好吧,这样在谷歌上没有啥问题
但是,我们需要兼容ie啊,这是重点,debug到对象的delete()方法时候,浏览器直接报错,于是,就出现了开始说的卡死问题了,
百度了一大堆之后,看到FormData对象的一个方法set()可以直接覆盖,心里像这下应该没有问题了,可以直接用这个方法代替开始加入时候的append和删除delete了,万万没有想到的是,ie照样不支持set方法。。。
于是,在把代码仔细过了一遍之后,啥方法都不管了,直接删除delete方法,在方法中的append对象文件之后,直接new 一个临时变量出来,替换当前的FormData对象,然后在用这个临时变量去赋给this全局变量使用,这样不就是手动实现了set方法了嘛,嗯,是这样没错,完美搞定

Logo

前往低代码交流专区

更多推荐