若相依 发表于 2015-1-16 22:07:43

ASP编程:浅谈asp编程中的测试打印、无效性反省及...

ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。编程|毛病|毛病处置|打印常常看到一些初学asp的伴侣为了测试一个值各处用response.write来打印,

而要看页面效果时再删除这些语句或加上正文,在正式版本出来之前要云云重复

屡次。而有些工资了削减贫苦,爽性全当它是准确的,不做测试输入,像如许极

易呈现林林总总的成绩,最多见的是假如要天生一条sql语句,必要利用变量,如

果不做测试打印,很难做到一次准确,在chinaasp论坛里常常见到这类成绩,老

是有人问这条语句为何会堕落等成绩,实践上他只需打印出这条语句看一下语

法是不是准确就好了,而不用各处追着人问。现实上好的编程习气应当是在本人没

有很年夜掌控的情形下把天生的语句或变量值打印出来,但如许做又费时吃力,有

没有对照好的办理办法呢?
在C里可使用_DEBUG如许的测试开关来把持debug版本和release版本,但

asp中并没有相似#define这类语句,那末是否是我们就没有举措了呢?实在我们

能够模仿c的这类做法,那就是在global.asa文件里界说一个application变量来

把持,象上面这个例子:

在global.asp里加上:
application("DEBUG")=1

然后做这么一个历程:
--------------------------------------------------------
Name:PRINT
Argument:a_strPrint:打印字符串
Return:
Description:打印(仅在DEBUG形态下运转)
Hitory:Createbybigeagle
--------------------------------------------------------
SubPRINT(a_strPrint)
ifApplication("DEBUG")=1then
Response.Write("<Paling=center>"+a_strPrint+"</P>")
endif
EndSub

这个历程的功效就是当测试开关翻开时(application("DEBUG")=1)打印

,而当测试开关封闭(application("DEBUG")=0)就不会有打印输入了。如许

在程序调试时代,你能够翻开测试开关,以察看变量的值,而当要看页面效果或

公布release版本时就能够封闭测试开关,如许一切的测试输入就不会呈现在页面

上。

以上谈到的是变量的测试输入,上面要谈谈准确性检测成绩。常常见到良多

人把页面提交过去或数据库掏出的值想都不想就用,基本不做准确性检测,那你

怎样能包管这些值的准确性呢?好比有一个input,提交后它的值应当是一个值包

含数字的字符串,但假如用户的输出包括其他字符,若不做准确性检测,那当你

用cint或clng转换时就会产生毛病,全部程序溃散。别的一种情形是如许,当你

从数据库中取值或诸云云类的操纵,应当是不会产生成绩,但假如呈现数据库出

错等成绩,那末用户也只能见到一个诸如odbc毛病等等的提醒信息,关于一个

成熟的商品程序来讲,这点是很欠好的,实在如今包含国际良多出名站点也呈现

这类成绩。以是应当养成如许一个习气,那就是任何大概出成绩的变量、参数在

利用之前都应当做准确性检测,而且对数据库操纵后应该判别否乐成。这是就又呈现一个版本成绩,假如是DEBUG版则应显现堕落信息以备修正,而release版则应当引诱到一个一致页面,如“本站临时呈现未知妨碍,请稍候再来"等等,准绳上永久不要给用户一个体系堕落信息页面。要完成上述功效,请看以下几个函数和历程。

--------------------------------------------------------
Name:ASSERT
Argument:a_blnConditon:断言前提
a_FunctionName:挪用函数
a_ErrorString:毛病描叙
Return:
Description:断言
Hitory:CreatebyBigeagle
--------------------------------------------------------
SubASSERT(a_blnConditon,a_FunctionName,a_ErrorString)
ifApplication("DEBUG")=0then
ifa_blnConditonTRUEthen
response.redirect("../include/bigerror.asp")
endif
else
ifa_blnConditonTRUEthen
callprint("断言毛病:在<fontcolor=red>"+a_FunctionName+"</font>呈现:"+a_ErrorString)
response.end

endif

endif

EndSub

这个历程的感化是检测变量或参数无效性,假如前提a_blnConditiontrue,那末假如测试开关翻开,则显现毛病信息,假如测试开关封闭,则重定向到毛病处置页面bigerror.asp。


--------------------------------------------------------
Name:CheckError
Argument:
Return:&nb</p>楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。

山那边是海 发表于 2015-1-18 20:47:11

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

第二个灵魂 发表于 2015-1-18 20:47:11

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

仓酷云 发表于 2015-1-25 12:16:38

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

小妖女 发表于 2015-2-2 22:04:46

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

兰色精灵 发表于 2015-2-8 11:35:10

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

柔情似水 发表于 2015-2-25 11:04:41

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

莫相离 发表于 2015-3-7 20:41:17

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

金色的骷髅 发表于 2015-3-15 14:06:17

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

小魔女 发表于 2015-3-22 01:53:13

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
页: [1]
查看完整版本: ASP编程:浅谈asp编程中的测试打印、无效性反省及...