爱飞 发表于 2015-1-16 23:16:39

ASP编程:WWWboard4,我的一些意见和...

只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天比来又拜读了飞鸟的WWWBOARD4高文,又有飞鸟的一些注释,比BOARD3好读多了,的确是个计划的挺优异的PRG。我依据我的实践必要,写了一个精装版和一个全体版(内核可满是飞鸟的BOARD4),临时还没UPLOAD,只是往失落了一些Ifpwssys...,Ifwinnt_chinese等。厥后以为飞鸟的程序有的中央能够改一下,现写出来,另加上一些BOARD4的我的心得,供喜好BOARD4的伴侣参考。不知对不合错误,请飞鸟斧正。

飞鸟的BOARD次要在数据库布局,布局的申明飞鸟已讲了,我不在叙说。
List.asp语句:
1、先掏出根帖(字段Parentid=0),并将失掉的纪录集反序分列
Selectannounceid,boardidfromannounceWhereboardid="&boardid&"andparentid=0ORDERBYannounceidDESC
2、使用Getrows从纪录会合选出20条根帖,存进到rootid数组中。
3、选出rootid数组中的Announceid,构成好像(1,2,3,4,5,.....20)的格局,
(飞鸟:有个判别语句:IfUbound(rootid)>1好象不要也能够吧)
4、由于每组会商的话题(根帖-父帖-子帖)它们都具有一个不异的Rootid,Rootid之间的干系:
子帖(rootid)=父帖(rootid)=根帖的(rootid)=根帖的(announcdid),(这个在存储子帖时注重一下)分明这点很主要,以是飞鸟用:
selectAnnounceID,parentID,child,boardID,userID,UserName,UserEmail,URL,URLTitle,URLPic,Topic,DateAndTime,hits,length,RootID,layer,ordersfromAnnouncewhereBoardID="&cstr(boardID)&"and(rootIDin"&selStr&")ORDERBYrootIDdesc,orders"
将这20条根帖及其一切子帖一古脑儿的全带了出来,不异的Rootid靠Orders升序排序,
5、记着layer只是把持层的,eg:我给你写了一个复兴帖,那末我就是你的子帖->layer+1,但还要把最新到场的帖子放在最下面显现,这就靠orders了,由于orders接纳的是升序分列,那末就提掏出父帖的rootid,orders将统一组(rootid)且orders>父帖的orders的Orders值加+1,就能够完成了,只不外写的时分倒过写:
conn.execute"updateannouncesetorders=orders+1whererootid="&cstr(RootID)&"andorders>"&cstr(iOrders)
Orders=Orders+1
6、关于把持缩进的layer,那就用数值套出来算吧,即刻就分明了。
7、飞鸟tree.inc有些变量没用上,删除吧!
8、飞鸟判别一个用户是不是新用户,用了轮回。我用:
dimnewuser,rs,SQL
newuser=false
Setrs=Server.CreateObject("ADODB.Recordset")
SQL="Select*fromuserWhereUcase(username)="&Ucase(username)&""
rs.openSQL,connmdb,1,3
Ifrs.eofthen
rs.addnew
newuser=true
rs("username")=username
rs("userpassword")=userpassword
rs.update
Iferrthen
founderr=true
message="对不起,操纵数据库失利,请稍侯再试"
showmessage(message)
Else
userid=rs("userid")
EndIf
Else
Ifrs("userpassword")userpasswordthen
founderr=true
message="您的暗码不准确(大概该名字被别人占用了,请实验用其余名字)"
showmessage(message)
Else
userid=rs("userid")
EndIF
EndIf
9、对了飞鸟,Announce表中,"Userid"字段好象起不到感化,是否是能够CUT失落,由于表中已有了"username","useremail"字段。

xixi,罗嗦了一通^O^

</p>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;

分手快乐 发表于 2015-1-20 08:49:14

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

莫相离 发表于 2015-1-24 06:57:47

不能只是将它停留在纸上谈兵的程度上。

精灵巫婆 发表于 2015-1-31 09:43:25

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

谁可相欹 发表于 2015-2-6 18:57:50

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

若相依 发表于 2015-2-18 06:45:41

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

蒙在股里 发表于 2015-3-6 00:50:03

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

活着的死人 发表于 2015-3-12 17:55:03

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

再见西城 发表于 2015-3-20 01:16:41

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
页: [1]
查看完整版本: ASP编程:WWWboard4,我的一些意见和...