一个关于 ie 浏览器的 bug 解决过程和思考

首先我们测试了老师反馈的异常情况。这所中学使用的是 IE8 浏览器。IE8 浏览器提交作文评分的情况是:一直停留在“正在提交系统评分”的页面,停留了很长时间以后,页面空白。

换用火狐浏览器,可以正常评分。
个人思考:可能是在 IE 浏览器下使用 jQuery 的 ajax方法失效。因此前端代码不能正确调用后台的方法,因此我们系统的“每隔30秒自动保存”的机制也失效了。(其实在后面的分析中,我们可以看到,这只是假象。)
于是我们很自然地想到的解决方案就是让用户更换浏览器,IE 浏览器虽然现在还是占有一席之地,但 IE8 这个版本已经有些“落伍”,这种要求我个人认为也只能蒙蒙不懂计算机的老师,这位老师也表示同意。鉴于谷歌浏览器不能选择安装路径而自动安装在 C 盘,该校机房计算机 C 盘重启之后会被还原。我们为每台计算机在 D盘 安装了火狐浏览器。火狐浏览器是一款相对主流的浏览器,我们选择这款浏览器的一个最主要原因是因为它是“绿色的”,即无须安装或者配置环境变量等繁琐步骤,只要把安装好的文件夹放置在用户磁盘里,直接运行 exe 文件,就可以启动该浏览器。
其实这一次拜访客户就这样结束了。

回来之后,我又想了一下今天发生的事情:

1、首先,教师反馈的学生作文不能保存的问题,我还没有在 ie8 浏览器下测试我们写作系统的保存功能;

所以第二天一早来到公司,我就开始了测试。果然,老师反映的问题复现了。但是我发现了一个奇怪的现象。在网页的左下角,显示如下。

2、于是,我还是习惯性地点进去看了一下,有新发现,使用 jQuery 的 ajax方法失效或许只是一个更底层的原因。表面上的原因有:

(1)jQuery 的版本太低:

(2)ie8 不支持调试的方法 console.info 方法,导致后面的代码不能正确解析,才导致需要使用 ajax 调用后台代码的地方失效。

今天来办公室使用 IE8 浏览器测试了一下,果然是 jQuery 不支持 IE8 浏览器造成的。解决的办法是降低这个页面的 jQuery 版本,以支持该页面调用后台的方法。另外,还要加强测试。
实际上 jQuery 的ajax 不支持 IE8 是一个假象, IE8 为调用到后台方法是因为我在页面上写了 console.info 调试信息( console.info 主流浏览器基本都支持),但是 IE8 浏览器不能识别该方法,导致好像 IE8不能调用到后台方法的假象。我把 console.info 调试信息都去掉就没有问题了。根据郭老师的意见,也顺便检查了系统中是否还有 console.info 调试信息,如果还有,将其删除,并更新相关文件到服务器上。

时间: 2024-07-30 14:51:36

一个关于 ie 浏览器的 bug 解决过程和思考的相关文章

STM32 .ld链接文件分析及一次bug解决过程

目录 STM32 .ld链接文件分析及一次bug解决过程 问题描述 解决办法 ld文件解析 后续 STM32 .ld链接文件分析及一次bug解决过程 问题描述 原子板的代码中含有一个关于使用外部SRAM的功能,由于本人的开发板的SRAM只有512K,因此稍微修改了一下代码,同时使用GCC进行编译,但是这里却报错了,源码如下: //内存池(4字节对齐) __align(4) u8 mem1base[MEM1_MAX_SIZE]; __align(4) u8 mem2base[MEM2_MAX_SI

分享一个控制JS 浏览器缓存的解决办法。

 JS 缓存的问题一直都是我们又爱又恨的东西.也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当js 文件有改动的时候,如何快速的将客户端缓存的js文件都失效,这是非常头痛的问题. 以至于每次客户反馈问题的时候,我们第一个解决办法都是清理浏览器缓存. 那么如何解决呢. 1. 直接禁止全部的静态文件缓存 在html 头部加上如下代码: <META HTTP-EQUIV="pragma" CONTENT

一个图文混排问题的解决过程

需求如所示:左边的是效果图,右边的是完成后的图                 具体需求描述:用户的回复一条就是一个cell,字数不定.当存在某种条件时,需要在文字(可能换行)的最后一个字后面添加一个能点击的删除按钮小图标,文字支持emoji表情符号. 解决过程: 1.一看到这种文字中需要穿插图片的就想到了富文本中的NSTextAttachment对象,它可以包装一个image后生成一个富文本,再给UILabel显示就能完成显示需求,但是,该对象只能包装UIImage对象,无法监听图片的点击事件

记录一次bug解决过程:eclipse集成lombok插件

一 总结 eclipse集成插件lombok: 启动Spring Boot项目: sublime全局搜索关键字:ctrl + shift + F JDK8中的lambda表达式使用 二 BUG描述:集成eclipse插件lombok lombok插件,使用注解@Data的方式,从而省略了代码中频繁的getter和setter方法.安装插件:通过下载jar包安装,并且制定到你的eclipse.exe路径.官方下载地址:http://projectlombok.org/download.html.

记录一次bug解决过程:规范变量名称和mybatis的使用以及代码优化

一.总结 Mybatis中当parameterType为基本数据类型的时候,统一采用_parameter来代替基本数据类型变量. Mybatis中resultMap返回一个对象,resultType返回一个Map简单数据类型(由于需要缓存到JVM中)的映射关系. String类型转Integer类型:String类型转int类型用到的方法是不一样的. 方法入口处第一行写new Date(),防止时间在23:59:59跨界对逻辑带来影响. 考虑到上线app_resource表忘记配置供应商比例,在

Bug解决过程复盘

反思了下,解决问题无外乎3w1h when where who how 就是查询出来的事情多了,现在不知道哪个地方出问题,应该根据日志一步一步梳理,查看每一步的输出结果是否与预期一致 顺藤摸瓜 觉得不清楚的地方,可以新增打印,或通过其它方法获取这些不可知的信息. 已经确认没有问题的代码,不能出异常情况时,就开始漫无目的的怀疑,张驰有度... 严格的讲这个Bug还没有彻底解决,因为没有找到真正的原因 重启下服务就好了!!!!!!!!!!!!!!!! 主要想梳理下操作流程: 当时的反应: bug出现

记录一次bug解决过程:可维护性和性能优化

一.总结 使用某些变量的地方在2次以上的,强烈建议使用枚举值来维护变量,日后方便扩展. 查数据库的方法调用,能合并就净量去合并. 二.Bug描述 枚举变量的维护以及方法使用: public class UsedOnce { public static enum ruleDetailsEnum { SOURCEREGIN("原区域"), TARGETREGIN("目的区域"), SOURCECITY("原城市"), TARGETCITY("

记录一次bug解决过程:resultType和手动开启事务

一.总结 二.BUG描述:MyBatis中resultType使用 MyBatis中的resultType类似于入参:parameterType.先看IDCM项目中的实际使用案例代码,如下: // List<Integer> orderIds = assetBeanMapperExt.getOrderIdsByParentIds(SqlStringUtil.formatInStr(logisticsOrder.getParentIds())); 我们的目的是通过*Ext层直接返回一个list,

记录一次bug解决过程:eclipse Installed JREs 配置引出的问题

一 总结 eclipse Installed JREs 配置引出的问题:编译以来JDK,不是JRE spring boot内嵌tomcat运行程序,tomcat:run 二 Bug描述:eclipse Installed JREs 配置引出的问题 刚新鲜检索出的代码,同学们编译都ok的,自己编译总是出错.原因在于eclipse Installed JREs 配置出错引出的问题.路径:windows->preferences->输入jre->Installed JRES->要依赖JD