Javascipt脚本调试(Javascript debugging)

标签: javascipt 脚本 调试 | 发表时间:2012-04-29 13:14 | 作者:rickc2k
出处:http://www.cnblogs.com/

简介

根据 CNZZ数据中心对国内主流浏览器的统计分析,2012年3月国产浏览器中360安全浏览器、搜狗高速浏览器和傲游浏览器的使用率分别为24.39%、7.37%、1.75%;国外浏览器中微软IE浏览器、谷歌Chrome浏览器及苹果Safari浏览器的使用率分别为53.40%、3.21%、2.22%。随着微软IE6 Countdown站点的发布、HTML5及CSS3技术的推出,谷歌等非IE内核浏览器也开始主导国外市场的前沿。在网页设计方面我们不得不考虑在主流浏览器上获得不错的展现效果。Javascript是动态网页不可或缺的关键技术,为了适应各种浏览器我们需要了解各浏览器中的脚本调试方法,总结切实可行的跨浏览器脚本开发及测试方法。

什么是好的调试方法?

好的调试方法就是让调试方法告别document.write;就是告别alert;告别window.title;告别window.status,是在不同的浏览器上无论是测试周期中或者发布后调式方法都对最终用户不可见,也不会影响用户感受。

各浏览器的调试输出工具

既然告别硬编码的调试方式我们就需要为各个浏览器找到合适的调试输出工具:

IE系浏览器(IE6/IE7/IE8):IE Developer Tools,此功能内嵌在IE9当中。

FireFox浏览器:Firebug

谷歌Chrome/苹果Safari/Opera:都可以在错误控制台中查看到错误信息。

用Console.log统一调试输出

在代码中使用console.log,也就是类似于alert,只不过把想要的信息输出到console里。console对象在Firefox、Chrome、Safari里都可以使用。除了console.log,还有console.error,console.info等等。

Firebug API - Console API: http://getfirebug.com/wiki/index.php/Console_API

IE Developer Tools & IE9: http://blogs.msdn.com/b/cdndevs/archive/2011/05/26/console-log-say-goodbye-to-javascript-alerts-for-debugging.aspx

但IE9之前的版本都需要安装IE Developer Tools且在打开的情况下,网页中的console对象才可用,否则浏览器会弹出console对象不可用的脚本错误信息。如上为问题一,各浏览器中console API接口不一致为问题二,如何解决这两个问题?答案是使用统一的类库,如下:

fauxconsole: http://icant.co.uk/sandbox/fauxconsole/

console.blog(): http://icant.co.uk/sandbox/fauxconsole/

其中console.blog()博客上更为详细的讲述了如何用javascript代码解决各种浏览器中的console对象处理,大家也可以根据开发的实际情况自由组合使用。

IE脚本调试的注意事项

对于初学Javascript的同志,建议使用Firefox浏览器,如果你就是愿意捧着微软的东西那么别忘了将IE进行如下设置才能顺利进行调试:

关于如何使用微软的脚本编辑器MSE、IE开发者工具等请参考《 在 IE 中调试 JavaScript》,其实Visual Studio中内嵌的脚本编辑器就是MSE演化而来的,所以没必要重复安装。

对于微软在脚本中增加的debugger关键字,不建议使用,如果使用请在使用后尽快删除。因为如果客户端安装了MSE及Visual Studio产品,即使是在发布的网页中debugger也会导致弹出微软的调试器选择窗口。具体已有博友文《 使用debugger语句调试JScript的郁闷》中进行了说明。

其它工具

IE下的优秀JavaScript调试工具Companion.JS》这是在偶然当中发现的,还未试用如有使用者可以发表一下评论。

总结

当然对于Javascript开发还有许多优秀的工具和开源类库,学习和了解开发环境就是掌握工具,工欲善其事,必先利其器。

本文链接

相关 [javascipt 脚本 调试] 推荐:

Javascipt脚本调试(Javascript debugging)

- - 博客园_首页
根据 CNZZ数据中心对国内主流浏览器的统计分析,2012年3月国产浏览器中360安全浏览器、搜狗高速浏览器和傲游浏览器的使用率分别为24.39%、7.37%、1.75%;国外浏览器中微软IE浏览器、谷歌Chrome浏览器及苹果Safari浏览器的使用率分别为53.40%、3.21%、2.22%.

调试JavaScript脚本程序(Firefox篇)

- - JavaScript - Web前端 - ITeye博客
试Firefox里面的脚本需要安装一个插件Venkman:. 1.       启动Firefox,浏览页面. 2.       点击“Add to firefox”,重启Firefox就可以使用了. 先简单地介绍一下如何在Venkman里面设置断点和查看变量的值. 1.       启动Firefox,运行网页到test.html.

(转)Flex与JavaScript的交互:调用JavaScipt或者被JavaScript调用

- - jackyrong
一、在JavaScript中调用Flex方法. 在Flex中可以用ExternalInterface来调用Flex的方法,途径是通过在Flex应用可调用方法列表中添加指定的公用方法. 在Flex应用中通过调用addCallback()可以把一个方法添加到此列表中. addCallback将一个ActionScript的方法注册为一个JavaScript和VBScript可以调用的方法.

IE执行脚本的速度太慢?禁用IE的脚本调试设置

- - IE浏览器中文网站
故事是这样的,工作专案有个大量使用JavaScript的重量级网页,稍做修改后在工作机 Windows 2008 R2 系统的 IE10上测试耗时居然超过10秒,速度实在太慢了,本以为这是"IE特色",后来才发现事情没想像单纯. 在同事Windows 7的IE9浏览器上执行相同网页,至少比我的电脑快了一倍以上,我才意识到我的IE10.

mysql backup 脚本

- - ITeye博客
网上备份脚本很多,但考虑都不周全. 保证创建备份文件只能是创建者跟root可以访问,其他用户没有权限,保证了数据库备份的安全. 上面脚本是负责备份的份数管理,. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

RMAN 备份脚本

- - CSDN博客数据库推荐文章
RMAN冷备份、一致性备份脚本. RMAN热备份、非一致性备份脚本. rman名称不允许重复,%U肯定不重复. %D 位于该月中的第几天 (DD). %M 位于该年中的第几月 (MM). %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,. %d 数据库名称其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列.

Log调试

- - ITeye博客
在开发中我们一定不能避免使用Log类,但是这个类存在一个问题就是,当你在程序中使用了大量的Log,那么在程序开发完毕的时候,这将是一个问题,因为,你需要将所有的Log记录注释掉(当然,你不注释也是可以的). 我们可以写一个类,将Log类包装起来,使用一个boolean来控制所有的Log记录的显示. public static final boolean isDebug = true;//这里控制所有Log的显示情况.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.

CSS 溢出检测脚本

- Public - 陈成的博客
按我的理解,CSS Bug 包含:. 内容 Bug (即运营填入内容或数据库读取内容后出现的 Bug). 其中兼容性 Bug 通常在开发阶段就能解决,而内容 Bug 通常被我们忽略. 比如忘记对文字设置 overflow: hidden;比如忘记对图片设置宽高;等. 所以,为自动化这块的测试工作,我写了个 简单的脚本 ,功能有二:.

在脚本中使用 trap

- jiaosq - IBM developerWorks 中国 : 文档库
要使脚本具有合理的健壮性,需要满足的条件之一就是能够清除强制终止后留下的任何临时日志或进程. 另一项需要考虑的因素是,在收到来自用户的中断后,应当采取哪些相应措施. 通过使用 shell 内置 trap 命令和记录器 (logger) 工具,这些工具有助于提高脚本在被强制终止时的健壮性. 在本文中,我将演示使用 trap 和记录器的方法.