首先我们测试了老师反馈的异常情况。这所中学使用的是 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. 阿里云SLB产品HTTP、HTTPS、UDP协议使用

    1.http协议测试 第一步:添加http监听服务,前端端口为8080,后端端口为80,健康检查中检查端口为后端端口80: 第二步:在绑定的服务器上安装服务,步骤如下 centos系统中启动http协 ...

  2. SpringBoot中FreeMarker创建

    1.创建SpringBoot项目时,勾选freemarker依赖(web,dev) 2.Controller中向model中存放数据 package com.ziv.springbootbygrald ...

  3. JavaScript文件中; !function (win, undefined) {}(window);的意义

    +function (){}-function (){}!function (){}~function (){}(function (){})() 这种写法可以保证匿名函数立即运行且运行一次 传入的 ...

  4. 编写 Chrome 扩展——contextMenus 的快捷创建

    1 写在前面 最近使用 typescript 与 angular 编写 chrome 扩展, 对繁复的 contextMenus 创建步骤进行了提炼,并总结一个类 2 重构思路 2.1 一般方法 在编 ...

  5. Java设计模式——模板方法设计模式(abstract修饰)

    解释: 一个抽象类中,有一个主方法,再定义 1...n 个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用. 解决的问题: 当功能内部一 ...

  6. Unity3D 优化

    用UNITY开发手机游戏,背景图片和UI图片显示的比PC机上模糊非常多,怎么解决??在unity里选中资源 1.TextureType 改成 Advanced2.NonPower of 2 改成 no ...

  7. Java反射学习-3 - 反射获取属性,方法,构造器

    package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...

  8. Linux环境下安装Django和Python

        1  下载前准备操作:安装相关的依赖库(工具包) yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel ...

  9. MicroPython 的优势

    定位的场景 MicroPython 在设计上最初就是为了嵌入式微处理器运行,例如在 nRF51822 (256kB flash + 16kB RAM) 的芯片上也可以运行起来,也有人肾得慌在 STM3 ...

  10. Linux用户都应该了解的命令行省时技巧

    每个Linux用户都应该了解的命令行省时技巧 有网友在问答网站Quora上提问:“有哪些省时小技巧,是每个Linux用户都应该知道的?” Joshua Levy 平常就在 Linux 平台工作,并且他 ...