熟语说“常在河边走,哪能不湿鞋”,在现实中我想说:“代码写多了,总会遇到奇怪的bug”,遇到bug不可怕,可怕的是不自己不知道这么解决,有些bug能当时解决,有些在自己知识水平提高后知道如何解决。还有些依然迷茫,在这做些总结归纳,顺便请教下牛人也是好的。

一、在一次调试样式的过程中,发现有个button死活不能居中,使用各种设置,如text-align等均无效,而在另一个页面中却很正常,百事不得其解,相同的样式设置但是就是无效,让人摸不住头脑。对于这样的问题,只是单独某个页面会出现,但是有部分页面不出现,那这个问题还是比较好定位的,比较下两个页面的异同就可以了,通过排除各种相关因素后发现,在不能居中的html中少了一个奇怪的头<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">。

在加上这个头部标签后发现正常显示,最后查找资料才知道这个是有用的信息头部,去掉后的默认版本不一样导致的。但是这个问题比较不容易发现的就是我们一般会将这样的头部去掉,忽略掉这个头部。

二、我做了个列表,然后想做一个全选的功能,然后就在头部使用一个checkBox来设置,当时的jquery写法是这样的:$(v).attr("checked", true);,当我信心满满的做完后发现一个bug,在我设置为false的时候能够起效果,但是当我设置为true时,下面的列并没有打上勾,然后我跟踪这个元素,发现这个元素的check确实设置为true了。但是就是没有打上勾。一直不明白为什么?通过在网上的列子也是一样的写法,并没有什么问题。那究竟是哪里出了问题。最后请教前段的同事才发现在原来docoment的属性是有两种的。还有一个是设置显示方式的,只有通过这个设置方式:$(v).prop("checked", true);chechBox才能显示打勾的样式。

ttributes和properties之间的差异在特定情况下是很重要。jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而 .attr() 方法返回 attributes 的值。例如, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected 应使用.prop()方法进行取值或赋值。 在jQuery1.6之前,这些属性使用.attr()方法取得,但是这并不是元素的attr属性。他们没有相应的属性(attributes),只有特性(property)。

三、jquery的日期转换问题。当在chorme中使用new Date("2015-01-01")是没有问题的。但是在IE中会发现并没有转成日期,而是一个undefine,最后发现在IE中这个日期格式是不被认可的。需要使用new Date("2015/01/01")格式。

四、一个方法耗时方法没有完全执行完全,由于有个方法要给整个公司员工发一封考勤邮件,但是这个方法在实际使用时发现总是执行到一半就中断执行了。通过日志发现这个方法最多只能执行两分钟的时间,然后就引发异常:Asp.Net正在中止线程引发的问题。

Asp.Net做的一个同步程序,同步的方法是通过JQuery的Ajax调用,同步过程大概要执行20多分钟,程序部署到服务器后执行一段时间后就弹出执行失败的对话框,日志记录的错误信息是“正在中止线程”。

查错过程:

1、根据“AspNet 正在中止线程“进行搜索,得到的结果基本都是跟”Response.End“有关的,但我的代码中没有Response.End,所以基本可以排除;

       2、因为使用JQuery的Ajax,所以猜想会不会是因为Ajax超时导致,修改代码将返回状态弹出:发现返回的status为”error“,也尝试过将timeout设置为一个较大值,发现问题依然存在,所以可以排除是JQuery Ajax超时;

       3、使用Fiddler2进行监控,发现执行一段时间后报了500错误,显示的错误详细信息如下图:到了这一步就好办了,可以知道是httpRuntime超时了,配置Webconfig就可以了,如下图:设置好好后发布到服务器,再次运行程序,问题解决。

奇怪的是在本机运行的时候即使没有设置executionTimeout也不会出现问题,原因是在本机的Webconfig中的compilation节点的有个debug属性设置为true,发布后的Webconfig中的compilation没有debug节点,当debug属性为false时,httpRuntime的executionTimeout属性才会生效。

五、这个是我到现在也无法解决的问题。我有一个项目使用的是IE8的浏览器,而且不能更换浏览器和系统。但是这个程序在运行中总是会不定时的发生卡顿现象,突然用着的程序被卡着几秒,而且是无规律的的。有的时候严重有的时候没问题。即使是我使用了前台开ActiveX控件来跟踪前台日志也未发现原因,应为在日志中时间总是很正常的。但是具体到使用中就会发现这个bug。这个问题一直困扰着这个项目。后来由于版本升级等原因,到现在依然未能解决。我一直耿耿于怀,因为这个唯一的一个我一直无法搞定的bug,以后估计也不会有机会搞定它了。只能猜测可能跟环境有关系,在大辐射场景工作,还是就是电脑原因。期待点播。

奇怪的BUG的更多相关文章

  1. 奇怪的bug(ant-design)

    ant-motion模板代码启动报错. 多了一层 import 会导致 less 编译的顺序发生变化,很奇怪的问题,还需要再深入看看.目前 ant-d.less 可以先改成这样来解决: + @impo ...

  2. 小程序制作中 一个奇怪的bug

    事情是这样的:原一个购物车 合并本地数据和服务器 数据方法如下 ,正常测试没有问题,当每次重新登录,会调用到这个方法,就会莫名其妙的卡主,debug 发现 a1.length =77731508 导致 ...

  3. 奇怪的bug:javascript不执行

    背景:有人想要个简单的js效果,点击某个菜单,其他菜单收起. 说了下思路,结果~~ 只好直接写了一个,代码如下: <!DOCTYPE html> <html> <head ...

  4. 奇怪的bug,不懂Atom在添加markdown-themeable-pdf,在配置好phantomjs的情况下报错

    本来打算用一下atom但是导出pdf报错,可是在预览的情况下就没有问题,顺便吐槽一下谷歌浏览器自己的markdown在线预览插件无法适配,用搜狗搭载谷歌的插件才能导出pdf,一下感觉逼格少了很多,等忙 ...

  5. ComboBox可搜索下拉框的使用注意事项,简单记录以及我遇到的一些奇怪的bug

    前几天做一个react的项目的时候需要用一个可搜索的下拉框ComboBox,上代码: <ComboBox // className={comboxClassName} items={storeA ...

  6. 配置进程外Session 同时解决一个奇怪的BUG 因为SQLserver 服务器名不是默认的.或者localhost而引发的一系列问题

    用公司的电脑学习如鹏网的视频,开发一个项目,用到了进程外session,因为公司电脑SQLServer 是2008 服务器名称是.  然后参考这篇文章进行设置进程外session 很顺利 完成了设置. ...

  7. 奇怪的transform bug

    对一个元素使用transform:rotate 进行旋转,造成: 父元素的背景图位置偏移,往下降,背景图也会变模糊一些 造成重绘,导致该元素后面的兄弟元素受到影响,变得模糊,并且无法遮盖住父元素的背景 ...

  8. 移动端一个奇怪的触摸bug

    这两天遇到一个很奇怪的bug,在移动端,一个页面里所有的input框都不能点击,我查了一下,里面的没有设置readonly属性,只要页面滚动一下就可以用了,而且,只要我在真机测试的时候,f12开发者模 ...

  9. bug: 在缓存行高时,总是记录错误.

    一,现象: 1.在 cell 中添加了一个 label, 并对 label 设置了 attributeText, 结果滑动的过程中,cell 的高度总是不对,多次出现下一个 cell 覆盖上一个 ce ...

随机推荐

  1. BZOJ1261: [SCOI2006]zh_tree

    Description 张老师根据自己工作的需要,设计了一种特殊的二叉搜索树.他把这种二叉树起名为zh_tree,对于具有n个结点的zh_tree,其中序遍历恰好为(1,2,3,-,n),其中数字1, ...

  2. ubuntu安装goldendict以及添加本地词典和在线词典

    软件在ubuntu软件中心安装就可以了, 关于网络词典, 推荐有道在线词典,网址http://dict.youdao.com/search?q=%GDWORD%&ue=utf8 添加方法:编辑 ...

  3. C语言编写的简单的电话本管理系统

    #include<stdio.h> #include <string.h> #include<stdlib.h> ; struct person {]; ]; ]; ...

  4. 一个日期的下一个星期五 next_date

    select next_day('18-5月-2001','星期五') nxt_day from dual;

  5. MATLAB 画出三个通信小区cell边界示意图

    d=1000; %两个小区中心间距离的一半 rcell=2*d/sqrt(3); %小区半径 ncell=3; %小区个数 cellposition=zeros(ncell,2); %初始化小区中心位 ...

  6. JS自执行匿名函数

    常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿 ...

  7. [UE4]自定义MovementComponent组件

    自定义Movement组件 目的:实现自定义轨迹如抛物线,线性,定点等运动方式,作为组件控制绑定对象的运动. 基类:UMovementComponent 过程: 1.创建UCustomMovement ...

  8. 文本框如果不输入任何内容提交过后是一个空字符串还是null

    1.在表单不填就提交的情况下,text类型和textarea类型的表单域,提交到服务端为空 2.checkbox.readio.select等表单域在为不填情况下不会提交到服务器,也就是说服务器接收不 ...

  9. HDU 1284 钱币兑换问题

    动态转移方程:dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3] 即要想兑够 i,有三种方法: 1.从 i - 1 再增加一个1分的: 2.从 i - 2 再增加一个2 ...

  10. 自定义struts实现

    一:struts2运行机制: Tomcat一启动,一些信息就已经加载完成,例如StrutsPrepareAndExecuteFilter加载的那些strut.xml以及Action的class类文件 ...