首先我们测试了老师反馈的异常情况。这所中学使用的是 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 调试信息,如果还有,将其删除,并更新相关文件到服务器上。

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

  1. android一个下拉放大库bug的解决过程及思考

    android一个下拉放大库bug的解决过程及思考 起因 项目中要做一个下拉缩放图片的效果,搜索了下github上面,找到了两个方案. https://github.com/Frank-Zhu/Pul ...

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

    一 总结 eclipse集成插件lombok: 启动Spring Boot项目: sublime全局搜索关键字:ctrl + shift + F JDK8中的lambda表达式使用 二 BUG描述:集 ...

  3. springboot中json转换LocalDateTime失败的bug解决过程

    环境:jdk1.8.maven.springboot 问题:前端通过json传了一个日期:date:2019-03-01(我限制不了前端开发给到后端的日期为固定格式,有些人就是这么不配合),      ...

  4. 记录一次bug解决过程:数据迁移

    一 总结 不擅长语言表达,勤于沟通,多锻炼 调试MyBatis中SQL语法:foreach 问题:缺少关键字VALUES.很遗憾:它的错误报的让人找不着北. 二 BUG描述:MyBatis中批量插入数 ...

  5. 记录一次bug解决过程:git深入学习和JDK8新特性

    一 总结 熟悉廖雪峰git基础; 由于git跟踪的是修改,而不是版本号:因此对于修改撤销的操作,文件在eclipse中依旧有>修改标记,这点不同于svn. 二 BUG描述:熟悉Git基础 在Gi ...

  6. 记录一次bug解决过程:else未补全导致数据泄露和代码优化

    一.总结 快捷键ctrl + alt + 四个方向键 --> 倒置屏幕 未补全else逻辑,倒置查询数据泄露 空指针是最容易犯的错误,数据的空指针,可以普遍采用三目运算符来解决 SVN冲突解决关 ...

  7. 记录一次bug解决过程:velocity中获取url中的参数

    一.总结 在Webx的Velocity中获取url中参数:$rundata.getRequest().getParameter('userId') 在Webx项目中,防止CSRF攻击(Cross-si ...

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

    一.总结 Mybatis中当parameterType为基本数据类型的时候,统一采用_parameter来代替基本数据类型变量. Mybatis中resultMap返回一个对象,resultType返 ...

  9. Bug解决过程复盘

    反思了下,解决问题无外乎3w1h when where who how 就是查询出来的事情多了,现在不知道哪个地方出问题,应该根据日志一步一步梳理,查看每一步的输出结果是否与预期一致 顺藤摸瓜 觉得不 ...

随机推荐

  1. 刷题——一道全排列的题目(Permutations)

    题目内容: 思路其实很简单,那就是暴力交换顺序,直接迭代出所有可能.先在一个位置固定一个数字,然后对剩下的数字进行排列,用同样的方法对剩下的数字进行排列(因此要用到递归,不用也行,但是会复杂一点,这里 ...

  2. new Date() 对象及方法:

    在别人的代码中见了两回 new Date().toLocaleString(),查了才知道,toLocaleString()是 根据本地时间格式,把 Date 对象转换为字符串.于是好奇new Dat ...

  3. Echars -- 在Vue中如何使用Echars

    在vue-cli项目中使用echarts -->Wangqi   这个示例使用 vue-cli 脚手架搭建 安装echarts依赖 npm install echarts -S 或者使用国内的淘 ...

  4. JDK的下载与Java运行环境

    JDK简介 什么是JDK JDK是Java Development Kit的缩写,意思是Java开发工具包.JDK就好比作人的心脏,人没有了心脏,生命也就失去存在的意义.Java也一样,JDK就是它的 ...

  5. STM32启动地址设置及从非0x800000 开始调试程序

    首先设置程序的启动地址,STM32默认的启动地址是从0x8000000开始的,现在我要设置程序向后偏移10K地址,也就是从0x8002800启动. 需要分两步完成上面操作: 一.Keil MDK设置: ...

  6. exec 命令

    source source命令即点(.)命令. 在bash下输入man source,找到source命令解释处,可以看到解释”Read and execute commands from filen ...

  7. %.*f (特殊的输出符)

    c语言中每一种数据类型都有自己的专属占位符,如整型的%d,浮点型的%f等,而*也是一个占位符,比较特殊而已. 比如输入一个n,输出0.5的n次方,就可以这么写 #include<bits/std ...

  8. 利用docker创建包含需要python包的python镜像

    一.拉取python镜像 需要先安装docker,这里读者自行搜索docker的安装过程,下面我们拉取python镜像:以3.7.4为例 docker pull python:3.7.4 二.进入容器 ...

  9. javaweb各种框架组合案例(六):springboot+spring data jpa(hibernate)+restful

    一.介绍 1.springboot是spring项目的总结+整合 当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间 ...

  10. 22pygame 安装

    实战步骤 pygame 快速体验 飞机大战 实战 确认模块 --pygame pygame 就是一个 Python 模块, 专为电子游戏设计 提示 : 学习第三方模块, 通常最好的参考资料就在官方网站 ...