像JSPASPNETColdFusion这样的Web开发平台提供了大量强大服务器端开发选项但是它们并没有否定用JavaScript进行客户端的Web开发
JavaScript同时提供了逻辑和用户接口功能减轻了服务器端处理的负载尽管我们已经使用它有多年了但是它的开发工具还是有点落后现在就让我们仔细看看JavaScript的开发和调试选项
开发工具
如果你习惯使用诸如Visual Studio或者NetBeans这样的集成开发环境(IDE)那么你就一定很熟悉各种调试选项包括代码单步调试设置断点以及监视变量等在监视代码执行或者追蹤错误时这些都是不可或缺的工具不幸的是这些工具在JavaScript开发人员中并不是十分普及
调试
应用程序开发中的一个重要步骤是追蹤脚本或者代码中的错误这包括隔离代码段一行一行地分析它们在使用JavaScript的时候你可以使用在开发工具大发展之前用过的方法
在这种情况下最常用的一种JavaScript函数是警报信息框你可以用它来检查保存在变量/对象里的值并与循环一起使用来查看对象的内容
举个例子列表A里的HTML代码没有按照预期的效果执行<html><head>
<title>JS Test</title>
<script language=JavaScript>
function validate() {
var doc = documentforms[];
var flag = true;
if (docfullNamevalue = )
flag = false;
if (ntactNumbervalue = )
flag = false;
if (flag) docsubmit()
else alert(Enter values before submitting);
}
</script></head>
<body>
<form id=frmTest>
Name: <input name=fullName type=text /><br />
Address: <input name=contactNumber type=text /><br />
<input type=button value=Submit onclick=validate(); />
</form></body></html>
按理说它会在表单被真的提交之前验证在两个文本字段里输入的值
这个表单总是不管输入的值是什么就被提交所以我们可以使用警报语句在脚本执行期间检查值的内容列表B里的脚本就使用了警报语句来监视变量的值
<html><head>
<title>JS Test</title>
<script language=JavaScript>
function validate() {
var doc = documentforms[];
var flag = true;
alert(Script starting flag = + flag);
alert(Script starting Full name = + docfullNamevalue);
alert(Script starting Contact number = + ntactNumbervalue);
if (docfullNamevalue = ) {
alert(First check Full Name is empty);
flag = false;
}
if (ntactNumbervalue = ) {
alert(Second check Contact Number is empty);
flag = false;
}
if (flag) {
alert(Validation successful document will be submitted);
docsubmit()
} else {
alert(Enter values before submitting);
} }
</script></head>
<body><form id=frmTest>
Name: <input name=fullName type=text /><br />
Address: <input name=contactNumber type=text /><br />
<input type=button value=Submit onclick=validate(); />
</form></body></html>
果你执行这段脚本很明显if语句总是为真如果更加仔细地看一看你会注意到这里使用的是分配操作(=)而不是等于(==)经过这两个改变脚本就会按预期的结果执行了
这个错误很常见尤其是当开发人员在诸如VBNET和其他句法上存在差异的语言之间轮流转换时我们现在快速浏览更多几个常见的错误
JavaScript对大小写敏感所以变量名JavaScript语句以及类似的内容必须使用正确的格式/大小写所以要按照统一的方式给你的对象变量和函数命名
在代码中使用逗号除了for语句外JavaScript把逗号用作变量的分隔符
JavaScript要用大括号来定义一段语句
字符串必须放在引号(单引号或者双引号)之间
用alert函数进行调试对于开发人员来说很常见但是现在有很多其他的选项来监视脚本包括浏览器和IDE
虽然Internet Explorer是最流行的浏览器但是它对JavaScript调试的支持还显得相当初级如果发生JavaScript错误会有一个错误(信息)窗口显示(大多数JavaScript错误的)错误消息还远不能让人满意但是它们至少能够让你知道发生了什么错误这些消息包括一个行号(尽管它从来都没有与真正的错误行相对应但是它确实让你离错误行比较近了)
此外它还能够调用外部应用程序进行调试(比如Visual Studio如果安装了的话)或者检查代码注意你可以从工具|选项(Tools | Options)里启动JavaScript的调试功能
基于Mozilla的浏览器也提供了选择的机会Firefox带有一个JavaScript控制台用来显示当前页面上脚本的(错误警告信息等)消息它会明确地显示发生错误的代码并用箭头指示哪里出现了错误
Netscape和Opera也带有JavaScript控制台有些浏览器还有用于调试的专用句法一个典型的例子是Opera它支持将输出送到控制台的operapostError()命令Safari浏览器的调试(Debug)菜单让你可以启动JavaScript错误的记录这样它们就会出现在控制台里
IDE选项
你还可以通过自己习惯的IDE调试基于浏览器的应用程序Visual Studio就是这样一个例子它能够让你通过它调试Internet Explorer应用程序你必须在Web服务器(IIS)启动调试功能这要按照下面的步骤进行
在调试模式(Debug|Start)启动Web应用程序
应用程序在一个浏览器窗口里启动返回到Visual Studio客户端选择调试|窗口|运行文档(Debug | Window | Running Documents)
当前运行的应用程序会出现在运行文档窗口里你可以选择Web窗体在JavaScript代码里设置断点
返回Web窗体使用应用程序执行会在插入的任何JavaScript断点处停止
Visual Studio不是唯一支持调试的IDE例如Dreamweaver有它自己的JavaScript调试器让你调试句法和逻辑错误设置断点监视变量进行代码单步调试它的一个非常好的特性是会用简单几句话解释JavaScript的错误
你还可以使用单独的JavaScript调试工具一个典型的例子是SplineTech的JavaScript HTML Debugger它是一个功能完备的开发工具如果你使用Eclipse IDE那么JSEclipse就是Eclipse的一个用于JavaScript开发的插件
用于调试的其他语言
JavaScript已经发展成为进行Web客户端编程的标准语言它有大量的语言资源但是对开发的支持并不完备大多数使用JavaScript的开发人员更倾向于用原来的方法进行调试但是现在有很多工具来减轻测试和调试的负担
Tony Patton的职业生涯始于应用程序开发员现已获得JavaVBLotus和XML认证证书