奇怪的BUG
熟语说“常在河边走,哪能不湿鞋”,在现实中我想说:“代码写多了,总会遇到奇怪的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的更多相关文章
- 奇怪的bug(ant-design)
ant-motion模板代码启动报错. 多了一层 import 会导致 less 编译的顺序发生变化,很奇怪的问题,还需要再深入看看.目前 ant-d.less 可以先改成这样来解决: + @impo ...
- 小程序制作中 一个奇怪的bug
事情是这样的:原一个购物车 合并本地数据和服务器 数据方法如下 ,正常测试没有问题,当每次重新登录,会调用到这个方法,就会莫名其妙的卡主,debug 发现 a1.length =77731508 导致 ...
- 奇怪的bug:javascript不执行
背景:有人想要个简单的js效果,点击某个菜单,其他菜单收起. 说了下思路,结果~~ 只好直接写了一个,代码如下: <!DOCTYPE html> <html> <head ...
- 奇怪的bug,不懂Atom在添加markdown-themeable-pdf,在配置好phantomjs的情况下报错
本来打算用一下atom但是导出pdf报错,可是在预览的情况下就没有问题,顺便吐槽一下谷歌浏览器自己的markdown在线预览插件无法适配,用搜狗搭载谷歌的插件才能导出pdf,一下感觉逼格少了很多,等忙 ...
- ComboBox可搜索下拉框的使用注意事项,简单记录以及我遇到的一些奇怪的bug
前几天做一个react的项目的时候需要用一个可搜索的下拉框ComboBox,上代码: <ComboBox // className={comboxClassName} items={storeA ...
- 配置进程外Session 同时解决一个奇怪的BUG 因为SQLserver 服务器名不是默认的.或者localhost而引发的一系列问题
用公司的电脑学习如鹏网的视频,开发一个项目,用到了进程外session,因为公司电脑SQLServer 是2008 服务器名称是. 然后参考这篇文章进行设置进程外session 很顺利 完成了设置. ...
- 奇怪的transform bug
对一个元素使用transform:rotate 进行旋转,造成: 父元素的背景图位置偏移,往下降,背景图也会变模糊一些 造成重绘,导致该元素后面的兄弟元素受到影响,变得模糊,并且无法遮盖住父元素的背景 ...
- 移动端一个奇怪的触摸bug
这两天遇到一个很奇怪的bug,在移动端,一个页面里所有的input框都不能点击,我查了一下,里面的没有设置readonly属性,只要页面滚动一下就可以用了,而且,只要我在真机测试的时候,f12开发者模 ...
- bug: 在缓存行高时,总是记录错误.
一,现象: 1.在 cell 中添加了一个 label, 并对 label 设置了 attributeText, 结果滑动的过程中,cell 的高度总是不对,多次出现下一个 cell 覆盖上一个 ce ...
随机推荐
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267 在上一篇文章中,我带着大家一起剖析了一下LayoutInflater ...
- How to copy remote computer files quickly to local computer
if we want copy file from VM(Remote VM) to local computer. Always can not easy copy file so easy. no ...
- redis命令总结
Redis命令总结 redis 127.0.0.1:6379> info #查看server版本内存使用连接等信息 redis 127.0.0.1:6379> client list ...
- bzoj1179(Atm)
---恢复内容开始--- 1179: [Apio2009]Atm Time Limit: 15 Sec Memory Limit: 162 MB Description Input 第一行包含两个整 ...
- mvc.net 的四种传值方式
Control: view:
- js的执行机制
遇到一个问题,因为自己本身就是菜鸟的原因,弄懂了还是很高兴的. console.log(a) function a() { return "this is function" } ...
- <<你最喜欢做什么--兴趣问题清单>>总结
二.测试作业 你最喜欢做什么--兴趣问题清单 •根据迄今为止已有的经历,你真正喜欢从事的工作是什么? 目前还没有接触工作,就工作而言,凭自己所学的本领和技术去工作,我认为我会喜欢我所做的工作 •休 ...
- usage of elinks (命令行下的firefox)
No.0 Press "Esc" to show main menu ============================================= No.1 tyep ...
- easyUI 的tree 修改节点,sql递归查询
1.easyUI 的tree 修改节点: 我需要:切换语言状态,英文下, 修改根节点文本,显示英文. 操作位置:在tree的显示 $('#tree').tree(),onLoadSuccess事件方法 ...
- AndroidStudio学习笔记-第一个安卓程序
要带一个本科生做一部分跟安卓有点关系的项目,于是趁着机会学习一下编写安卓程序. 第一篇材料来自谷歌官方,传送门:https://developer.android.com/training/basic ...