在WEB页面中添加调试程序

原创 2013年12月04日 09:45:07

E587-2如何设计JS的debug调试程序?
1、在公共组件中定义log这个变量,因为所有的页面都会调用这个公共组件,因此,定义的参数也是“公有”的,即所有的JS文件中会使用这个全局变量来添加对应的日志信息
2、由于考虑到JS是在浏览器中作用,不需要对应的Server支撑,因此开发人员只需要在地址栏中添加参数告诉浏览器现在是要调试程序即可

 

function getQueryStringByName(item){
    var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
    return svalue ? svalue[1] : svalue;
}

var log = log4javascript.getNullLogger();
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);

  

 问题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、比对直接打开页面的地址和自己添加链接的地址,发现自己添加的地址前面多了"file:\\\"这个字符串
3、因为浏览器自己会根据前面的协议去做相关的解析,类似于使用href链接,如果前面有http这个链接,则显示相对路径,如果没有这个,则显示相对路径
4、这个就是对应的协议,浏览器自己会根据这个“头协议”去做判断

延伸:起初在设计log的时候就应该定义一个规则,在什么样的情况下就要记录log,这样就能够根据不同的参数显示不同的内容。
例如:log = trace;显示的就是全部server反馈给ui的信息内容
   log = debug;显示的内容就是向server发送的请求

相关文章推荐

使用gdb调试程序详解和GCC参数详解

熟练使用gdb是一个linux下开发人员必备的一项技能,我们由浅入深的学习一下gdb的强大功能。 一.gdb简单介绍 名称     gdb - GNU Debugger 提要     gdb...
  • doc_sgl
  • doc_sgl
  • 2013年12月11日 21:35
  • 3857

Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)

Android 开发之使用Eclipse Debug调试详解雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.co...

GDB调试程序(完全手册)

GDB概述   1 使用GDB  GDB中运行UNIX的shell程序  在GDB中运行程序   2 调试已运行的程序 两种方法:   3 暂停 / 恢复程序运行  一、设置断点(B...
  • wj_1986
  • wj_1986
  • 2011年11月15日 00:03
  • 787

java jdb 命令行调试程序

日常的可以远程debug程序,线上程序查看duiz
  • arkblue
  • arkblue
  • 2014年10月01日 18:10
  • 19304

使用lldb 和debugsever 调试程序

lldb 大家应该很熟悉,已经被苹果集成到xcode开发工具中,我们平时写程序的时候,调试程序经常会打断点,程序运行到断点的地方会自动停下来,然后在控制台中就可以使用lldb 的命令来进行调试。 但是...

C/C++在调试程序时运行代码行数与实际不一致

问题如下: 在C/C++中,利用__LINE__这个宏可以打印当前代码实际运行所在的行,在调试程序的时候发现不一致然后利用这个宏查看了相隔的行数差,这里本应该是740行,在output窗口里面实...
  • lggrief
  • lggrief
  • 2016年10月12日 14:48
  • 169

真正实现再wine上安装VC6.0,并编译调试程序

如何在普通的wineHQ下安装可编译代码的Visual C++ 6.0

让Hibernate输出SQL语句以便更加深入调试程序----参数配置

在J2ee应用中,如果采用Hibernate框架,可以自动建立数据库实体与Java实体类的映射关系,大大方便Java程序进行持久化对象访问和操作,从而明显提高企业应用开发效率,减轻Java程序与后台数...

调试程序-断点,Debug,崩溃日志分析,友盟崩溃日志

一.设置和查看断点 断点可以分为以下3种类型。 1. 文件行断点设置 添加断点->右键选择Edit Breakpoint Condition:指的是条件表达式,该项允许我们对断点生效设置...

linux使用gdb调试程序完全教程

转自 http://blog.csdn.net/gatieme 程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。  本文将主要介绍linux下的强大调试工具是怎...
  • PZ0605
  • PZ0605
  • 2016年09月06日 14:29
  • 3060
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在WEB页面中添加调试程序
举报原因:
原因补充:

(最多只允许输入30个字)