Posted in 2009/08/04 ¬ 14:31h.yongbin
上次总结了Firefox下进行JavaScript断点调试的技巧,这次来看一下其他浏览器下的调试。一点说明,这里的调试技巧都不借助于浏览器之外的工具,例如Aptana,VS2008等。如果要找这方面的一些资料,我这里没有哈。
其他浏览器,主要是Opera, Safari, Chrome和IE8。这之中除了IE8,它们的调试功能都挺不错的,基本都可以搜索脚本,加入断点,查看调用栈、本地变量,以及强大的console。
1. 使用Opera的Dragonfly进行断点调试
Read the rest of this entry »
Posted in 2009/08/04 ¬ 00:26h.yongbin
如果您还没有阅读《JavaScript调试技巧之:快速定位》,建议先看看那篇。说不定,用快速定位就能解决问题了,呵呵。这次我会总结记录一下断点调试的笔记,希望也对大家有用,欢迎补充交流!
首先,在各个浏览器中,断点调试支持的最好的当然是Firefox,Firefox不仅可以使用Firebug调试页面js脚本,还可以用高级调试工具例如JavaScript Debugger (Venkman) 来调试Firefox扩展里的js。除此之外,Firefox还支持一些更为高级的断点调试、变量监视功能。
其他浏览器里,Opera、Chrome和Safari的调试功能也比较好用。Opera的DragonFly速度相对比较快,界面清爽,功能强大,但不如Safari等友好。相比来说,IE8的程序员工具简直没法用。
这次时间有限,先来总结一下Firefox下的调试技巧。
Read the rest of this entry »
Posted in 2009/07/24 ¬ 00:48h.yongbin
赶紧总结一下JavaScript的调试技巧,这次首先是“快速定位”篇。
快速定位,其实就是快速定位程序的错误,所以也算是调试。这个在实际的码代码时往往比较实用。大多数情况下,你的js代码不多(少于1000行),只要能迅速发现代码的错误,往往不用复杂的调试。关于常用的快速定位方法,我总结了一下几点,欢迎大家补充。
1. 使用alert
alert其实比较实用。本地调试中,在合适的位置写alert,打出来一些变量,虽然比较土,但是往往事半功倍!另外有一个alert技巧,想看看一个对象中的属性和它的值吗,试试这个:
var str = “”, i;
for (i in obj) {
str += i + “: ” +obj[i] + “\n”;
}
alert(str);
2. 使用地址栏
Read the rest of this entry »
Posted in 2009/07/10 ¬ 02:17h.yongbin
我是学控制理论出身,一个控制系统的鲁棒性,确实是在做系统设计时需要着重注意的。什么是控制系统的鲁棒性?
所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性(摘自百度百科……汗)。
在软件设计和开发中,同样也要时刻考虑提高鲁棒性。那么如何提高JavaScript程序的鲁棒性呢?我认为,RIA的鲁棒性,一般来讲,主要跟js的代码规范性和DOM操作有关系。下面我总结几点开发中需要注意的地方,让页面跑不死、不报错。这些事情可能在实际开发中都是小事,但是对于提高软件整体的鲁棒性,是非常critical的!
1. 严禁使用全局变量
唉,这个我可是亲身体会并深受其害啊!话说,当时我修改一个页面,开发一段脚本,需要写cookie。我发现页面上以前有人引用了一个js文件,里面有setCookie函数,好啊,拿来用!结果这个cookie死活都写不对。检查了半天,才发现这个页面引用的另外一个js文件也有一个setCookie函数,函数的参数和刚才那个不一样,而我调用的估计是这个函数!应该是之前的两个同事在同一个页面上自己搞自己的,结果竟然函数重名,而这两个函数都是全局的!设想一下,加入两个人都在全局范围内搞一个var i = 0; 那岂不是更加疯掉。
Read the rest of this entry »
Posted in 2009/07/09 ¬ 22:59h.yongbin
Gmail的logo上终于没有了Beta字样,于此同时,Google Calendar,Google Docs也脱离了beta。Gmail长达七年之久的开发与测试终于结束。
从2004年的愚人节到现在,Gmail一直beta着。在此期间,Gmail小组又加入了很多创新性、革命性的东西在里面。例如加入了Gtalk,让大家在网页上聊天,甚至后来在网页上视频通话;加入了pop邮件的功能;使用long polling来实时获取新邮件;创新性地用标签,而不是文件夹来分类邮件。这些都是之前的网页开发者很难想象、很难做到的。
不过,更值得一提的是web应用程序的beta精神。Web App和桌面程序不同,有很多因素会影响其稳定性。例如网络环境,例如浏览器的兼容性和浏览器设置等等。事实上JavaScript本身就是一个设计上存在缺陷的语言,浏览器对它的支持也不尽相同,而CSS在不同浏览器下的差异更是让我们费尽脑子。这些因素都让我们无法理直气壮地说自己的web程序没有问题。一个复杂的网页程序,在Firefox下运行正常了,你敢说在IE5.5下运行也正常?你敢说在Konqueror下显示和运行都没有问题?大概正因如此,Gmail一直都没有脱离beta。也就是说,上个世纪的浏览器大战造成的兼容性问题,折磨了Gmail整整7年啊。
Read the rest of this entry »