发布于 2017-01-10 12:54:24 | 114 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Javascript教程,程序狗速度看过来!

JavaScript客户端脚本语言

Javascript 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。


开发js组件的时间调试总是麻烦的,最常用的就是用alert或者debugger来测试js的运行状态。
但这两种方式都有它的局限性,alert会有中断,有些时候alert出来的值并不可靠,闭包的时候用alert可能会得到不正确的值。debugger使用起来其实也挺纠结的,只有ie支持。所以最合理的方式是js把运行过程需要调试的值输出到页面,或者写到cookie也可以,这种方式不会有alert中断带来值不正确的问题,也不会受浏览器类型的限制,唯一纠结的是操作起来很麻烦。
于是,有了下面说的这个js组件。这个组件的实现参考了log4net组件的记录方式,我们利用这个js的logger组件,就可以用log的输出的方式来进行你的调试工作了。
 
/* 
js调试组件 
*/ 
(function () { 
var logger = function (level, object, viewType) { 
this.level = level; 
this.object = object; 
this.viewType = viewType; 
} 
logger.LEVEL_DEBUG = 0; 
logger.LEVEL_INFO = 1; 
logger.LEVEL_WARN = 2; 
logger.LEVEL_ERROR = 3; 
logger.LEVEL_FATAL = 4; 
logger.VIEW_TYPE_ALERT = 0; 
logger.VIEW_TYPE_APPEND = 1; 
logger.prototype = { 
setLevel: function (level) { 
this.level = level; 
}, 
setObject: function (o) { 
if (typeof o == 'string') { 
this.object = document.getElementById(o); 
} else { 
this.object = o; 
} 
}, 
setViewType: function (type) { 
this.viewType = type; 
}, 
log: function (s) { 
this.message(100, s); 
}, 
debug: function (s) { 
this.message(logger.LEVEL_DEBUG, s); 
}, 
info: function (s) { 
this.message(logger.LEVEL_INFO, s); 
}, 
warn: function (s) { 
this.message(logger.LEVEL_WARN, s); 
}, 
error: function (s) { 
this.message(logger.LEVEL_ERROR, s); 
}, 
fatal: function (s) { 
this.message(logger.LEVEL_FATAL, s); 
}, 
message: function (level, s) { 
if (level >= this.level) { 
if (this.object != null) { 
this.object.innerHTML = s; 
} else if (this.viewType == logger.VIEW_TYPE_ALERT) { 
alert(s); 
} else { 
document.body.appendChild(document.createTextNode(s)); 
document.body.appendChild(document.createElement("br")); 
} 
} 
} 
}; 
if (typeof window.Logger == 'undefined' || window.Logger == null) 
window.Logger = new logger(logger.LEVEL_DEBUG, null, logger.VIEW_TYPE_APPEND); 
})(); 

怎么使用呢?
这个js组件往window对象注册了Logger对象,我们可以用Logger.log/Logger.debug/Logger.info/Logger.warn/Logger.error/Logger.fatal来输出不同的调试信息。
示例代码如下:
 
Logger.debug(new Date()); 
Logger.debug(new Date().addHours(3)); 

很简单,再也不用每个地方都写document.getElementId().innerHtml或者alert/debugger来输出内容了。
示例代码中使用的addHours是我扩展js的Date对象方法,想要了解更多的朋友可以查看《扩展js的Date方法》。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务