在WEB页⾯中添加log⽇志
function getQueryStringByName(item){
var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
return svalue ? svalue[1] : svalue;
}
var log = NullLogger();
var _logEnable = getQueryStringByName("log");
if (_logEnable == "debug")
{
log.setLevel(log4javascript.Level.DEBUG);
}
else if (_logEnable == "trace")
{
log.setLevel(log4javascript.Level.TRACE);
}
log.debug("MAIN : entered " + window.location.href);
E587-2如何设计JS的debug调试程序?
1、在公共组件中定义log这个变量,因为所有的页⾯都会调⽤这个公共组件,因此,定义的参数也是“公有”的,即所有的JS⽂件中会使⽤这个全局变量来添加对应的⽇志信息
2、由于考虑到JS是在浏览器中作⽤,不需要对应的Server⽀撑,因此开发⼈员只需要在地址栏中添加参数告诉浏览器现在是要调试程序即可
问题1:直接在地址栏中输⼊?log="debug"
返回的结果有debug字符串,但是if (_logEnable == "debug") 为false,不能进⼊
1、alert(_logEnable)的结果为debug,这就是“灵异”事件
2、测试_logEnable的类型 alert(typeof(_logEnable))和alert(typeof "debug"),两个都为string
3、类型⼀样,最后怀疑字符串的长度,如果存在空格,使⽤alert是不显⽰出来的,这样测试alert(_logEnable.length),结果为7
所以(_logEnable == "debug") 为false的原因到了
上⾯这样的情况很隐蔽,因此要细⼼查
使⽤脱机页⾯,在地址栏中添加“?log=debug”,页⾯⽆法预期显⽰debug的调试内容?
1、在脱机的代码中添加⼀个链接——链接本地页⾯,只是多了"?log=debug"这个参数,页⾯能够达到预期的⽬的显⽰debug调试的内容
2、⽐对直接打开页⾯的地址和⾃⼰添加链接的地址,发现⾃⼰添加的地址前⾯多了""这个字符串
3、因为浏览器⾃⼰会根据前⾯的协议去做相关的解析,类似于使⽤href链接,如果前⾯有http这个链接,则显⽰相对路径,如果没有这个,则显⽰相对路径
4、这个就是对应的协议,浏览器⾃⼰会根据这个“头协议”去做判断
延伸:起初在设计log的时候就应该定义⼀个规则,在什么样的情况下就要记录log,这样就能够根据不同的参数显⽰不同的内容。
例如:log = trace;显⽰的就是全部server反馈给ui的信息内容
log = debug;显⽰的内容就是向server发送的请求
使⽤word2007如何给⽂字“分栏”——纵向排列?js在字符串中添加字符
页⾯布局----分栏----选择分栏数
⽬的:可以充分利⽤页⾯的空⽩部分,节省打印纸
设计模式——动态代理?
聚合⽐继承要好很多,防⽌类爆炸
聚合:⼀个类在另⼀个类中
继承:⼦类拥有⽗类“开放”的属性和⽅法
采⽤动态代理的⽬的:可以对任何类都可以添加代理,⽽不必关注某个具体的类添加代理,如果需要代理,只需要使⽤动态代理就可以了,可以解决所有的类
编辑器加载中...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论