在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发送的请求

lightbox---在web页面中添加图片浏览功能

  http://www.huddletogether.com/projects/lightbox2首先去上面的页面看一下特效,能够在web页面中实现象acdsee那样的图片浏览的功能,给单调的...
  • mayabin
  • mayabin
  • 2008年12月20日 20:51
  • 1405

在SRAM中调试程序

经过前段时间的学习,我意识到了一些Keil编程调试的技巧,下面主要介绍一些关于Keil如何从SRAM中调试。首先,为什么要这样做,我在同样的那本书上看到的总结:1.下载速度快。RAM的写入速度比内部的...
  • zyxhangiian123456789
  • zyxhangiian123456789
  • 2018年01月18日 22:24
  • 37

从WEB页面给浏览器的搜索引擎添加自己站的搜索

原文:http://www.dodo.hk/article.asp?id=573新的浏览器都带了快捷搜索,如firefox,IE7,opera等,这样方便了用户  通过web页面脚本+一些文件也可以将...
  • qsdnet
  • qsdnet
  • 2008年03月23日 16:41
  • 575

如何在web页面中,实现耗时操作的后台执行?多线程吗?

如何在web页面中,实现耗时操作的后台执行?多线程吗? 系统框架是spring, 功能描述:画面输入条件,单击确定按钮,执行check check通过后,执行一个非常耗时的操作(读取文件...
  • autumn20080101
  • autumn20080101
  • 2016年03月17日 22:57
  • 392

调试中遗留待解决问题

1. gdb 调试中出现如下错误: Program received signal SIGTRAP, Trace/breakpoint trap. 详细描述: 用调试环境调试 MFI工程...
  • ustccw
  • ustccw
  • 2018年01月15日 20:11
  • 13

php yii框架web项目连接数据库以及crud操作

上篇文章介绍了如何配置yii框架,那么这篇我们就来学习yii的crud操作。不懂的朋友可以给我留言。 首先,我们找到我们wen项目的配置文件,..\yiiphp\protected\config   ...
  • u011102206
  • u011102206
  • 2014年02月13日 17:32
  • 3708

如何发布和在页面中加入 Web Part

1,   在VS 中Build 产生Web Part 对应的 DLL 文件;2,   将DLL 文件Copy 至MOSS Server 对应的bin 目录下;DLL一般路径为: C:/Inetpub/...
  • DJ2008
  • DJ2008
  • 2008年04月12日 12:27
  • 656

在eclipse中调试程序(01)

 1、打开一个项目。2、选择windou/Show view/Debug可以打开调试视图。3、单击Debug可以开始调试。4、开始调试后,在调试视图中选择一个线程(Thread),单击Suspend可...
  • ja_II_ck
  • ja_II_ck
  • 2008年05月28日 21:17
  • 550

四、在ANDROID中调试程序

1、ANDROID中日志信息分为四种:错误(ERROR)、警告(WARN)、通知(INFO)、调试(DEBUG)、详细(VERBOSE).除了在开发阶段,VERBOSE从不被编译到一个应用程序中,调试...
  • feilong1105
  • feilong1105
  • 2011年06月07日 09:14
  • 1013

在iOS开发中如何调试程序

iOS在开发总如何调试程序 个人总结了一些在平常程序调试的方法, 大致分为如下几类: 1 -> 全局断点 2 -> 调试堆栈 3 -> 打印调试 4 -> 调试工具Bugly cr...
  • nine_Demon
  • nine_Demon
  • 2016年11月05日 20:17
  • 842
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在WEB页面中添加调试程序
举报原因:
原因补充:

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