if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="/m/view.php?aid=36";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}
织梦CMS - 轻松建站从此开始!

外围投注- 时时彩外围网站投注

当前位置: 主页 > 网页基础 > Javascript/Ajax >

减轻JavaScript测试和调试负担

时间:2010-04-07 09:36来源: 作者: 点击:
像JSP、ASP.NET、ColdFusion这样的Web开发平台提供了大量强大服务器端开发选项。但是,它们并没有否定用JavaScript进行客户端的Web开发。
var _mda_place_id ="58bcc82381892";

像JSP、ASP.NET、ColdFusion这样的Web开发平台提供了大量强大服务器端开发选项。但是,它们并没有否定用JavaScript进行客户端的Web开发。

JavaScript同时提供了逻辑和用户接口功能,减轻了服务器端处理的负载。尽管我们已经使用它有多年了,但是它的开发工具还是有点落后。现在就让我们仔细看看JavaScript的开发和调试选项。

开发工具

如果你习惯使用诸如Visual Studio或者NetBeans这样的集成开发环境(IDE),那么你就一定很熟悉各种调试选项,包括代码单步调试、设置断点,以及监视变量等。在监视代码执行或者追踪错误时,这些都是不可或缺的工具。不幸的是,这些工具在JavaScript开发人员中并不是十分普及。

调试

应用程序开发中的一个重要步骤是追踪脚本或者代码中的错误。这包括隔离代码段,一行一行地分析它们。在使用JavaScript的时候,你可以使用在开发工具大发展之前用过的方法。

在这种情况下,最常用的一种JavaScript函数是警报信息框。你可以用它来检查保存在变量/对象里的值,并与循环一起使用来查看对象的内容。

举个例子,列表A里的HTML代码没有按照预期的效果执行:


JS Test

function validate() {
var doc = document.forms[0];
var flag = true;
if (doc.fullName.value = '')
flag = false;
if (doc.contactNumber.value = '')
flag = false;
if (flag) doc.submit()
else alert('Enter values before submitting.');
}



Name:

Address:


按理说,它会在表单被真的提交之前验证在两个文本字段里输入的值。

这个表单总是不管输入的值是什么就被提交,所以我们可以使用警报语句在脚本执行期间检查值的内容。列表B里的脚本就使用了警报语句来监视变量的值:


JS Test

function validate() {
var doc = document.forms[0];
var flag = true;
alert('Script starting, flag = ' + flag);
alert('Script starting, Full name = ' + doc.fullName.value);
alert('Script starting, Contact number = ' + doc.contactNumber.value);
if (doc.fullName.value = '') {
alert('First check, Full Name is empty.');
flag = false;
}
if (doc.contactNumber.value = '') {
alert('Second check, Contact Number is empty.');
flag = false;
}
if (flag) {
alert('Validation successful, document will be submitted.');
doc.submit()
} else {
alert('Enter values before submitting.');
} }


Name:

Address:


(责任编辑:admin)
织梦二维码生成器 var __dedeqrcode_id=16; var __dedeqrcode_aid=36; var __dedeqrcode_type='arc'; var __dedeqrcode_dir='/plus';
顶一下
(0)
0%
踩一下
(0)
0%
getDigg(36);
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
function LoadCommets(page) { var taget_obj = document.getElementById('commetcontent'); var waithtml = "
评论加载中...
"; var myajax = new DedeAjax(taget_obj, true, true, '', 'x', waithtml); myajax.SendGet2("/plus/feedback_ajax.php?dopost=getlist&aid=36&page="+page); DedeXHTTP = null; } function PostComment() { var f = document.feedback; var nface = '6'; var nfeedbacktype = 'feedback'; var nvalidate = ''; var nnotuser = ''; var nusername = ''; var npwd = ''; var taget_obj = $DE('commetcontentNew'); var waithtml = "
正在发送中...
"; if(f.msg.value=='') { alert("评论内容不能为空!"); return; } if(f.validate) { if(f.validate.value=='') { alert("请填写验证码!"); return; } else { nvalidate = f.validate.value; } } if(f.msg.value.length > 500) { alert("你的评论是不是太长了?请填写500字以内的评论。"); return; } if(f.feedbacktype) { for(var i=0; i < f.feedbacktype.length; i++) if(f.feedbacktype[i].checked) nfeedbacktype = f.feedbacktype[i].value; } if(f.face) { for(var j=0; j < f.face.length; j++) if(f.face[j].checked) nface = f.face[j].value; } if(f.notuser.checked) nnotuser = '1'; if(f.username) nusername = f.username.value; if(f.pwd) npwd = f.pwd.value; var myajax = new DedeAjax(taget_obj, false, true, '', '', waithtml); myajax.sendlang = 'utf-8'; myajax.AddKeyN('dopost', 'send'); myajax.AddKeyN('aid', '36'); myajax.AddKeyN('fid', f.fid.value); myajax.AddKeyN('face', nface); myajax.AddKeyN('feedbacktype', nfeedbacktype); myajax.AddKeyN('validate', nvalidate); myajax.AddKeyN('notuser', nnotuser); myajax.AddKeyN('username', nusername); myajax.AddKeyN('pwd', npwd); myajax.AddKeyN('msg', f.msg.value); myajax.SendPost2('/plus/feedback_ajax.php'); f.msg.value = ''; f.fid.value = 0; if(f.validate) { if($DE('validateimg')) $DE('validateimg').src = "/include/vdimgck.php?"+f.validate.value; f.validate.value = ''; } } function quoteCommet(fid) { document.feedback.fid.value = fid; } LoadCommets(1);
栏目列表
var _mda_place_id ="590b358eda70b";
推荐内容
var _mda_place_id ="58bcc82381892";
var _mda_place_id ="58bce8309bc21";
var contentRtPicAD2 = document.getElementById("contentRtPicAD2"); var stop = contentRtPicAD2.offsetTop - 60, docBody = document.documentElement || document.body.parentNode || document.body, hasOffset = window.pageYOffset !== undefined, scrollTop; window.onscroll = function (e) { // cross-browser compatible scrollTop. scrollTop = hasOffset ? window.pageYOffset : docBody.scrollTop; if (scrollTop >= stop) { contentRtPicAD2.className = 'stick'; } else { contentRtPicAD2.className = ''; } }